Mercurial > babel > old > babel-test
changeset 229:9a3f2acb55e6
Remove duplicate locations of catalog messages.
author | cmlenz |
---|---|
date | Tue, 24 Jul 2007 21:16:57 +0000 |
parents | fd29fabdc986 |
children | 2097287603e7 |
files | babel/messages/catalog.py babel/messages/pofile.py babel/messages/tests/catalog.py |
diffstat | 3 files changed, 12 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/babel/messages/catalog.py +++ b/babel/messages/catalog.py @@ -33,7 +33,8 @@ __all__ = ['Message', 'Catalog', 'TranslationError'] __docformat__ = 'restructuredtext en' -PYTHON_FORMAT = re.compile(r'\%(\([\w]+\))?([-#0\ +])?(\*|[\d]+)?(\.(\*|[\d]+))?([hlL])?[diouxXeEfFgGcrs]') +PYTHON_FORMAT = re.compile(r'\%(\([\w]+\))?([-#0\ +])?(\*|[\d]+)?' + r'(\.(\*|[\d]+))?([hlL])?[diouxXeEfFgGcrs]') class Message(object): @@ -60,7 +61,7 @@ if not string and self.pluralizable: string = (u'', u'') self.string = string #: The message translation - self.locations = list(locations) + self.locations = list(distinct(locations)) self.flags = set(flags) if id and self.python_format: self.flags.add('python-format') @@ -470,7 +471,8 @@ # The new message adds pluralization current.id = message.id current.string = message.string - current.locations.extend(message.locations) + current.locations = list(distinct(current.locations + + message.locations)) current.auto_comments = list(distinct(current.auto_comments + message.auto_comments)) current.user_comments = list(distinct(current.user_comments +
--- a/babel/messages/pofile.py +++ b/babel/messages/pofile.py @@ -356,7 +356,7 @@ them in the output; by default they are included as comments :param include_previous: include the old msgid as a comment when - updating the catalog + updating the catalog """ def _normalize(key, prefix=''): return normalize(key, prefix=prefix, width=width) \
--- a/babel/messages/tests/catalog.py +++ b/babel/messages/tests/catalog.py @@ -67,6 +67,12 @@ self.assertEqual(['A comment', 'Another comment'], cat['foo'].user_comments) + def test_duplicate_user_comment(self): + cat = catalog.Catalog() + cat.add('foo', locations=[('foo.py', 1)]) + cat.add('foo', locations=[('foo.py', 1)]) + self.assertEqual([('foo.py', 1)], cat['foo'].locations) + def test_update_message_updates_comments(self): cat = catalog.Catalog() cat[u'foo'] = catalog.Message('foo', locations=[('main.py', 5)])