From 2a0cc76e7383170a7da3762262f355030f9e3fdb Mon Sep 17 00:00:00 2001 From: Felix Schwarz Date: Thu, 23 Aug 2012 09:48:21 +0000 Subject: [PATCH] =?utf8?q?fix=20'input=5Fdirs'=20option=20for=20setuptools?= =?utf8?q?=20integration=20(#232,=20initial=20patch=20by=20=C3=89tienne=20?= =?utf8?q?Bersac)?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- ChangeLog | 2 ++ babel/messages/frontend.py | 8 ++++++-- babel/messages/tests/frontend.py | 19 +++++++++++++++++++ 3 files changed, 27 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 5c9cf1ce..40de850a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -55,6 +55,8 @@ http://svn.edgewall.org/repos/babel/tags/1.0.0/ * add babel.support.NullTranslations class similar to gettext.NullTranslations but with all of Babel's new *gettext methods (#277) * "init" and "update" commands support "--width" option (#284) + * fix 'input_dirs' option for setuptools integration (#232, initial patch by + Étienne Bersac) Version 0.9.6 diff --git a/babel/messages/frontend.py b/babel/messages/frontend.py index f2f7603a..41ef8939 100755 --- a/babel/messages/frontend.py +++ b/babel/messages/frontend.py @@ -23,6 +23,7 @@ from locale import getpreferredencoding import logging from optparse import OptionParser import os +import re import shutil from StringIO import StringIO import sys @@ -224,7 +225,8 @@ class extract_messages(Command): ('strip-comments', None, 'strip the comment TAGs from the comments.'), ('input-dirs=', None, - 'directories that should be scanned for messages'), + 'directories that should be scanned for messages. Separate multiple ' + 'directories with commas(,)'), ] boolean_options = [ 'no-default-keywords', 'no-location', 'omit-header', 'no-wrap', @@ -274,7 +276,9 @@ class extract_messages(Command): raise DistutilsOptionError("'--sort-output' and '--sort-by-file' " "are mutually exclusive") - if not self.input_dirs: + if self.input_dirs: + self.input_dirs = re.split(',\s*', self.input_dirs) + else: self.input_dirs = dict.fromkeys([k.split('.',1)[0] for k in self.distribution.packages ]).keys() diff --git a/babel/messages/tests/frontend.py b/babel/messages/tests/frontend.py index 48b2e6a9..c5b8ba17 100644 --- a/babel/messages/tests/frontend.py +++ b/babel/messages/tests/frontend.py @@ -28,6 +28,7 @@ from babel import __version__ as VERSION from babel.dates import format_datetime from babel.messages import frontend from babel.util import LOCALTZ +from babel.messages.pofile import read_po this_dir = os.path.abspath(os.path.dirname(__file__)) @@ -108,6 +109,24 @@ class ExtractMessagesTestCase(unittest.TestCase): self.cmd.sort_by_file = True self.assertRaises(DistutilsOptionError, self.cmd.finalize_options) + def test_input_dirs_is_treated_as_list(self): + self.cmd.input_dirs = self.datadir + self.cmd.output_file = self._pot_file() + self.cmd.finalize_options() + self.cmd.run() + + catalog = read_po(open(self._pot_file(), 'U')) + msg = catalog.get('bar') + self.assertEqual(1, len(msg.locations)) + self.assertTrue('file1.py' in msg.locations[0][0]) + + def test_input_dirs_handle_spaces_after_comma(self): + self.cmd.input_dirs = 'foo, bar' + self.cmd.output_file = self._pot_file() + self.cmd.finalize_options() + + self.assertEqual(['foo', 'bar'], self.cmd.input_dirs) + def test_extraction_with_default_mapping(self): self.cmd.copyright_holder = 'FooBar, Inc.' self.cmd.msgid_bugs_address = 'bugs.address@email.tld' -- 2.47.3