mirror of
https://github.com/django/django.git
synced 2025-08-04 02:48:35 +00:00
Don't use os.system() in compilemessages.
Fixes #19584. This implies stop storing file path command line arguments in envvars as a security measure to start relying on with Popen's shell=False instead, and addition of an 'utils' module. Thanks kmichel_wgs for the report.
This commit is contained in:
parent
5c51d71f9a
commit
dfa9324966
5 changed files with 67 additions and 14 deletions
|
@ -99,3 +99,22 @@ class MultipleLocaleCompilationTests(MessageCompilationTests):
|
|||
|
||||
self.assertTrue(os.path.exists(self.MO_FILE_HR))
|
||||
self.assertTrue(os.path.exists(self.MO_FILE_FR))
|
||||
|
||||
|
||||
class CompilationErrorHandling(MessageCompilationTests):
|
||||
|
||||
LOCALE='ja'
|
||||
MO_FILE='locale/%s/LC_MESSAGES/django.mo' % LOCALE
|
||||
|
||||
def setUp(self):
|
||||
super(CompilationErrorHandling, self).setUp()
|
||||
self.addCleanup(self._rmfile, os.path.join(test_dir, self.MO_FILE))
|
||||
|
||||
def _rmfile(self, filepath):
|
||||
if os.path.exists(filepath):
|
||||
os.remove(filepath)
|
||||
|
||||
def test_error_reported_by_msgfmt(self):
|
||||
os.chdir(test_dir)
|
||||
with self.assertRaises(CommandError):
|
||||
call_command('compilemessages', locale=self.LOCALE, stderr=StringIO())
|
||||
|
|
21
tests/i18n/commands/locale/ja/LC_MESSAGES/django.po
Normal file
21
tests/i18n/commands/locale/ja/LC_MESSAGES/django.po
Normal file
|
@ -0,0 +1,21 @@
|
|||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2011-12-04 04:59-0600\n"
|
||||
"PO-Revision-Date: 2013-02-26 21:29-0300\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: ja\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
|
||||
#, brainfuck-format
|
||||
msgwhat!? "This is an invalid PO file. GNU msgfmt should reject it."
|
|
@ -41,7 +41,8 @@ if can_run_extraction_tests:
|
|||
MultipleLocaleExtractionTests)
|
||||
if can_run_compilation_tests:
|
||||
from .commands.compilation import (PoFileTests, PoFileContentsTests,
|
||||
PercentRenderingTests, MultipleLocaleCompilationTests)
|
||||
PercentRenderingTests, MultipleLocaleCompilationTests,
|
||||
CompilationErrorHandling)
|
||||
from .contenttypes.tests import ContentTypeTests
|
||||
from .forms import I18nForm, SelectDateForm, SelectDateWidget, CompanyForm
|
||||
from .models import Company, TestModel
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue