Ticket #16903: no-location-with-tests.patch

File no-location-with-tests.patch, 6.6 KB (added by Alpár Jüttner, 13 years ago)

Tests added

  • django/core/management/commands/makemessages.py

     
    116116
    117117def make_messages(locale=None, domain='django', verbosity='1', all=False,
    118118        extensions=None, symlinks=False, ignore_patterns=[], no_wrap=False,
     119        no_location=False,
    119120        no_obsolete=False):
    120121    """
    121122    Uses the locale directory from the Django SVN tree or an application/
     
    164165        languages = [os.path.basename(l) for l in locale_dirs]
    165166
    166167    wrap = no_wrap and '--no-wrap' or ''
     168    location = no_location and '--no-location' or ''
    167169
    168170    for locale in languages:
    169171        if verbosity > 0:
     
    192194                finally:
    193195                    f.close()
    194196                cmd = (
    195                     'xgettext -d %s -L C %s --keyword=gettext_noop '
     197                    'xgettext -d %s -L C %s %s --keyword=gettext_noop '
    196198                    '--keyword=gettext_lazy --keyword=ngettext_lazy:1,2 '
    197199                    '--keyword=pgettext:1c,2 --keyword=npgettext:1c,2,3 '
    198200                    '--from-code UTF-8 --add-comments=Translators -o - "%s"' % (
    199                         domain, wrap, os.path.join(dirpath, thefile)
     201                        domain, wrap, location, os.path.join(dirpath, thefile)
    200202                    )
    201203                )
    202204                msgs, errors = _popen(cmd)
     
    236238                if verbosity > 1:
    237239                    sys.stdout.write('processing file %s in %s\n' % (file, dirpath))
    238240                cmd = (
    239                     'xgettext -d %s -L Python %s --keyword=gettext_noop '
     241                    'xgettext -d %s -L Python %s %s --keyword=gettext_noop '
    240242                    '--keyword=gettext_lazy --keyword=ngettext_lazy:1,2 '
    241243                    '--keyword=ugettext_noop --keyword=ugettext_lazy '
    242244                    '--keyword=ungettext_lazy:1,2 --keyword=pgettext:1c,2 '
    243245                    '--keyword=npgettext:1c,2,3 --keyword=pgettext_lazy:1c,2 '
    244246                    '--keyword=npgettext_lazy:1c,2,3 --from-code UTF-8 '
    245247                    '--add-comments=Translators -o - "%s"' % (
    246                         domain, wrap, os.path.join(dirpath, thefile))
     248                        domain, wrap, location, os.path.join(dirpath, thefile))
    247249                )
    248250                msgs, errors = _popen(cmd)
    249251                if errors:
     
    273275                    os.unlink(os.path.join(dirpath, thefile))
    274276
    275277        if os.path.exists(potfile):
    276             msgs, errors = _popen('msguniq %s --to-code=utf-8 "%s"' %
    277                                   (wrap, potfile))
     278            msgs, errors = _popen('msguniq %s %s --to-code=utf-8 "%s"' %
     279                                  (wrap, location, potfile))
    278280            if errors:
    279281                os.unlink(potfile)
    280282                raise CommandError(
     
    285287                    f.write(msgs)
    286288                finally:
    287289                    f.close()
    288                 msgs, errors = _popen('msgmerge %s -q "%s" "%s"' %
    289                                       (wrap, pofile, potfile))
     290                msgs, errors = _popen('msgmerge %s %s -q "%s" "%s"' %
     291                                      (wrap, location, pofile, potfile))
    290292                if errors:
    291293                    os.unlink(potfile)
    292294                    raise CommandError(
     
    302304                f.close()
    303305            os.unlink(potfile)
    304306            if no_obsolete:
    305                 msgs, errors = _popen('msgattrib %s -o "%s" --no-obsolete "%s"' %
    306                                       (wrap, pofile, pofile))
     307                msgs, errors = _popen('msgattrib %s %s -o "%s" --no-obsolete "%s"' %
     308                                      (wrap, location, pofile, pofile))
    307309                if errors:
    308310                    raise CommandError(
    309311                        "errors happened while running msgattrib\n%s" % errors)
     
    328330            default=True, help="Don't ignore the common glob-style patterns 'CVS', '.*' and '*~'."),
    329331        make_option('--no-wrap', action='store_true', dest='no_wrap',
    330332            default=False, help="Don't break long message lines into several lines"),
     333        make_option('--no-location', action='store_true', dest='no_location',
     334            default=False, help="Don't write '#: filename:line' lines"),
    331335        make_option('--no-obsolete', action='store_true', dest='no_obsolete',
    332336            default=False, help="Remove obsolete message strings"),
    333337    )
     
    352356            ignore_patterns += ['CVS', '.*', '*~']
    353357        ignore_patterns = list(set(ignore_patterns))
    354358        no_wrap = options.get('no_wrap')
     359        no_location = options.get('no_location')
    355360        no_obsolete = options.get('no_obsolete')
    356361        if domain == 'djangojs':
    357362            extensions = handle_extensions(extensions or ['js'])
     
    362367            sys.stdout.write('examining files with the extensions: %s\n'
    363368                             % get_text_list(list(extensions), 'and'))
    364369
    365         make_messages(locale, domain, verbosity, process_all, extensions, symlinks, ignore_patterns, no_wrap, no_obsolete)
     370        make_messages(locale, domain, verbosity, process_all, extensions, symlinks, ignore_patterns, no_wrap, no_location, no_obsolete)
  • tests/regressiontests/i18n/commands/extraction.py

     
    183183        self.assertTrue(os.path.exists(self.PO_FILE))
    184184        po_contents = open(self.PO_FILE, 'r').read()
    185185        self.assertMsgId('""\n"This literal should also be included wrapped or not wrapped depending on the "\n"use of the --no-wrap option."', po_contents, use_quotes=False)
     186
     187
     188class NoLocationExtractorTests(ExtractorTests):
     189
     190    def test_no_wrap_enabled(self):
     191        os.chdir(self.test_dir)
     192        management.call_command('makemessages', locale=LOCALE, verbosity=0, no_location=True)
     193        self.assertTrue(os.path.exists(self.PO_FILE))
     194        po_contents = open(self.PO_FILE, 'r').read()
     195        self.assertFalse('#: templates/test.html:55' in po_contents)
     196
     197    def test_no_wrap_disabled(self):
     198        os.chdir(self.test_dir)
     199        management.call_command('makemessages', locale=LOCALE, verbosity=0, no_location=False)
     200        self.assertTrue(os.path.exists(self.PO_FILE))
     201        po_contents = open(self.PO_FILE, 'r').read()
     202        self.assertTrue('#: templates/test.html:55' in po_contents)
Back to Top