Fixed #26232 -- Fixed Popen mocking environment in i18n tests

Refs #25925. Thanks Jeroen Pulles for the report.
This commit is contained in:
Claude Paroz 2016-02-20 09:36:01 +01:00
parent c30086159d
commit eda306f1ce

View File

@ -165,14 +165,15 @@ class CompilationErrorHandling(MessageCompilationTests):
with self.assertRaises(CommandError): with self.assertRaises(CommandError):
call_command('compilemessages', locale=['ja'], verbosity=0) call_command('compilemessages', locale=['ja'], verbosity=0)
# We will check the output of msgfmt, so we need to make sure its output
# is unaffected by the current locale.
@mock.patch('django.core.management.utils.Popen',
lambda *args, **kwargs: Popen(*args, env={'LANG': 'C'}, **kwargs))
def test_msgfmt_error_including_non_ascii(self): def test_msgfmt_error_including_non_ascii(self):
# po file contains invalid msgstr content (triggers non-ascii error content). # po file contains invalid msgstr content (triggers non-ascii error content).
mo_file = 'locale/ko/LC_MESSAGES/django.mo' mo_file = 'locale/ko/LC_MESSAGES/django.mo'
self.addCleanup(self.rmfile, os.path.join(self.test_dir, mo_file)) self.addCleanup(self.rmfile, os.path.join(self.test_dir, mo_file))
# Make sure the output of msgfmt is unaffected by the current locale.
env = os.environ.copy()
env.update({'LANG': 'C'})
with mock.patch('django.core.management.utils.Popen',
lambda *args, **kwargs: Popen(*args, env=env, **kwargs)):
if six.PY2: if six.PY2:
# Various assertRaises on PY2 don't support unicode error messages. # Various assertRaises on PY2 don't support unicode error messages.
try: try: