测试django国际化 - 模拟gettext

Ror*_*ory 6 python django mocking gettext internationalization

我正在国际化/进行django项目.我们有一个独立运行的部件并执行后台任务.这是由rabbitmq调用的.我想测试i18n/l10n是否适用于该部分.但是我们的应用尚未翻译,并且暂时不会.我想在翻译开始之前编写单元测试.

我想模拟一些翻译,所以它_("anything")作为一个常量字符串返回,以便我可以测试它是否正在尝试翻译事物,而不需要设置所有翻译.

我尝试使用mock,但with mock.patch('django.utils.translations.ugettext_lazy'), my_function_that_just_returns_one_string):没有用.将_导入为from django.utils.translations import ugettext_lazy as _.

Ror*_*ory 2

我找不到现有的方法来做到这一点。然而,通过阅读 Django 源代码,我想出了一种简单、脆弱的方法来做到这一点:查看 _active DjangoTranslation 对象,然后包装它们的 ugettext 方法。我在这里描述了它: http: //www.technomancy.org/python/django-i18n-test-translation-by-manually-setting-translations/