You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Есть проблема с тем что где-то, где мы используем message_source в стиле m[lang]['some_taxt]`, может быть неправильно указан ключ (taxt vs text) из message_source'а. но эта проверка будет только в рантайме. И это может быть слишком поздно.
По соглашению, что все сообщения формируются только в модулях handlers и service, необходимо написать простой скрипт, который:
загрузил бы в себя все сообщения из мапы message_source в 2 мапы - русский и англ язык.
другими словами - знал бы все возможные ключи в этой мапе.
еще болле другими словами - найти в тексте файла все записи вида 'x':'y' (учесть что пробелов может быть сколько угодно и кавычки могут быть двойными. (как вариант насчет кавычек - можем все договориться использовать одинарные)) и достать x. проверить что таких иксов - 2 штуки. по кол-ву языков. если нашелся только 1 - говорить что это за ключ и кидать ошибку.
находил бы все упоминания message_source[a]['b'] в текстах всех файлов из 2х модулей, извлекал b и проверял бы, содержится ли эта строка среди извлеченных ранее ключей messge_source'а. если не содержится - говорить какого нет и кидать ошибку.
Таким образом мы обезопасим себя от поиска по несуществующему ключу и возможный косяк в рантайме. Потом скрипт будет добавлен в процесс деплоя имейджа.
The text was updated successfully, but these errors were encountered:
если сложно сделать на баше, как вариант, это можно сделать прям на питоне. тогда первый пункт вообще уже решен считай, а второй делается за 2 строчки. надо поместить это в тест, чтобы за нас этот скрипт гонял трэвис (!).
возможно, это даже более предпочтительный вариант!
UPD: Проверять надо все проектные файлы по паттерну, ибо message_source разросся и обращения кнему, соответственно, тоже. Хотя кто это будет делать? конечно, же, никто
И проверять надо не только наличие ключей, но еще и сами сообщения на валидность markdown. ибо невалидный маркдаун выливается в 400 bad rq. соотвественно в каждом сообщении, где есть маркдаун, должно быть четное число его элементов
Есть проблема с тем что где-то, где мы используем message_source в стиле
m[lang]['some_taxt
]`, может быть неправильно указан ключ (taxt vs text) из message_source'а. но эта проверка будет только в рантайме. И это может быть слишком поздно.По соглашению, что все сообщения формируются только в модулях
handlers
иservice
, необходимо написать простой скрипт, который:загрузил бы в себя все сообщения из мапы
message_source
в 2 мапы - русский и англ язык.'x':'y'
(учесть что пробелов может быть сколько угодно и кавычки могут быть двойными. (как вариант насчет кавычек - можем все договориться использовать одинарные)) и достатьx
. проверить что таких иксов - 2 штуки. по кол-ву языков. если нашелся только 1 - говорить что это за ключ и кидать ошибку.находил бы все упоминания
message_source[a]['b']
в текстах всех файлов из 2х модулей, извлекалb
и проверял бы, содержится ли эта строка среди извлеченных ранее ключей messge_source'а. если не содержится - говорить какого нет и кидать ошибку.Таким образом мы обезопасим себя от поиска по несуществующему ключу и возможный косяк в рантайме. Потом скрипт будет добавлен в процесс деплоя имейджа.
The text was updated successfully, but these errors were encountered: