From b16b124996b8f5c1f922cec688d32553b8ab94b8 Mon Sep 17 00:00:00 2001 From: Claude Paroz Date: Thu, 28 Apr 2016 21:18:55 +0200 Subject: Fixed #26341 -- Fixed makemessages breaking location comments for HTML files Thanks Sylvain Garancher for the report and Veranika Sabiashchanskaya for the initial patch. --- tests/i18n/commands/__init__.py | 3 +++ tests/i18n/commands/templates/test.html | 3 +++ tests/i18n/test_extraction.py | 15 +++++++++++++-- 3 files changed, 19 insertions(+), 2 deletions(-) (limited to 'tests') diff --git a/tests/i18n/commands/__init__.py b/tests/i18n/commands/__init__.py index 0b3acf5b4d..39ce6d7a17 100644 --- a/tests/i18n/commands/__init__.py +++ b/tests/i18n/commands/__init__.py @@ -12,3 +12,6 @@ number = 3 dummy3 = ungettext("%(number)s Foo", "%(number)s Foos", number) % {'number': number} dummy4 = _('Size') + +# This string is intentionally duplicated in test.html +dummy5 = _('This literal should be included.') diff --git a/tests/i18n/commands/templates/test.html b/tests/i18n/commands/templates/test.html index e7f7ba93eb..b4b896fcef 100644 --- a/tests/i18n/commands/templates/test.html +++ b/tests/i18n/commands/templates/test.html @@ -70,6 +70,9 @@ continued here.{% endcomment %} {% trans "Translatable literal #7.1g"|add:2 context "context #7.1g" as var %} {% trans "Translatable literal #7.1h" | add:"foo" | add:2 context "context #7.1h" as var %} + +{% trans "#: templates/test.html.py" %} + {% blocktrans context "Special blocktrans context #1" %}Translatable literal #8a{% endblocktrans %} {% blocktrans count 2 context "Special blocktrans context #2" %}Translatable literal #8b-singular{% plural %}Translatable literal #8b-plural{% endblocktrans %} {% blocktrans context "Special blocktrans context #3" count 2 %}Translatable literal #8c-singular{% plural %}Translatable literal #8c-plural{% endblocktrans %} diff --git a/tests/i18n/test_extraction.py b/tests/i18n/test_extraction.py index bae2840934..83fbeb5bd4 100644 --- a/tests/i18n/test_extraction.py +++ b/tests/i18n/test_extraction.py @@ -649,8 +649,19 @@ class LocationCommentsTests(ExtractorTests): # #16903 -- Standard comment with source file relative path should be present self.assertLocationCommentPresent(self.PO_FILE, 'Translatable literal #6b', 'templates', 'test.html') - # #21209 -- Leaky paths in comments on Windows e.g. #: path\to\file.html.py:123 - self.assertLocationCommentNotPresent(self.PO_FILE, None, 'templates', 'test.html.py') + def test_location_comments_for_templatized_files(self): + """ + Ensure no leaky paths in comments, e.g. #: path\to\file.html.py:123 + Refs #21209/#26341. + """ + os.chdir(self.test_dir) + management.call_command('makemessages', locale=[LOCALE], verbosity=0) + self.assertTrue(os.path.exists(self.PO_FILE)) + with open(self.PO_FILE, 'r') as fp: + po_contents = force_text(fp.read()) + self.assertMsgId('#: templates/test.html.py', po_contents) + self.assertLocationCommentNotPresent(self.PO_FILE, None, '.html.py') + self.assertLocationCommentPresent(self.PO_FILE, 5, 'templates', 'test.html') class KeepPotFileExtractorTests(ExtractorTests): -- cgit v1.2.1