Mercurial > babel > old > mirror
annotate babel/messages/tests/catalog.py @ 97:debd9ac3bb4d
Fix for #11 (use local timezone in timestamps of generated POT).
author | cmlenz |
---|---|
date | Tue, 12 Jun 2007 18:40:39 +0000 |
parents | f517ad70d8fc |
children | 4b42e23644e5 |
rev | line source |
---|---|
58
068952b4d4c0
Add actual data structures for handling message catalogs, so that more code can be reused here between the frontends.
cmlenz
parents:
diff
changeset
|
1 # -*- coding: utf-8 -*- |
068952b4d4c0
Add actual data structures for handling message catalogs, so that more code can be reused here between the frontends.
cmlenz
parents:
diff
changeset
|
2 # |
068952b4d4c0
Add actual data structures for handling message catalogs, so that more code can be reused here between the frontends.
cmlenz
parents:
diff
changeset
|
3 # Copyright (C) 2007 Edgewall Software |
068952b4d4c0
Add actual data structures for handling message catalogs, so that more code can be reused here between the frontends.
cmlenz
parents:
diff
changeset
|
4 # All rights reserved. |
068952b4d4c0
Add actual data structures for handling message catalogs, so that more code can be reused here between the frontends.
cmlenz
parents:
diff
changeset
|
5 # |
068952b4d4c0
Add actual data structures for handling message catalogs, so that more code can be reused here between the frontends.
cmlenz
parents:
diff
changeset
|
6 # This software is licensed as described in the file COPYING, which |
068952b4d4c0
Add actual data structures for handling message catalogs, so that more code can be reused here between the frontends.
cmlenz
parents:
diff
changeset
|
7 # you should have received as part of this distribution. The terms |
068952b4d4c0
Add actual data structures for handling message catalogs, so that more code can be reused here between the frontends.
cmlenz
parents:
diff
changeset
|
8 # are also available at http://babel.edgewall.org/wiki/License. |
068952b4d4c0
Add actual data structures for handling message catalogs, so that more code can be reused here between the frontends.
cmlenz
parents:
diff
changeset
|
9 # |
068952b4d4c0
Add actual data structures for handling message catalogs, so that more code can be reused here between the frontends.
cmlenz
parents:
diff
changeset
|
10 # This software consists of voluntary contributions made by many |
068952b4d4c0
Add actual data structures for handling message catalogs, so that more code can be reused here between the frontends.
cmlenz
parents:
diff
changeset
|
11 # individuals. For the exact contribution history, see the revision |
068952b4d4c0
Add actual data structures for handling message catalogs, so that more code can be reused here between the frontends.
cmlenz
parents:
diff
changeset
|
12 # history and logs, available at http://babel.edgewall.org/log/. |
068952b4d4c0
Add actual data structures for handling message catalogs, so that more code can be reused here between the frontends.
cmlenz
parents:
diff
changeset
|
13 |
068952b4d4c0
Add actual data structures for handling message catalogs, so that more code can be reused here between the frontends.
cmlenz
parents:
diff
changeset
|
14 import doctest |
068952b4d4c0
Add actual data structures for handling message catalogs, so that more code can be reused here between the frontends.
cmlenz
parents:
diff
changeset
|
15 from StringIO import StringIO |
068952b4d4c0
Add actual data structures for handling message catalogs, so that more code can be reused here between the frontends.
cmlenz
parents:
diff
changeset
|
16 import unittest |
068952b4d4c0
Add actual data structures for handling message catalogs, so that more code can be reused here between the frontends.
cmlenz
parents:
diff
changeset
|
17 |
068952b4d4c0
Add actual data structures for handling message catalogs, so that more code can be reused here between the frontends.
cmlenz
parents:
diff
changeset
|
18 from babel.messages import catalog |
068952b4d4c0
Add actual data structures for handling message catalogs, so that more code can be reused here between the frontends.
cmlenz
parents:
diff
changeset
|
19 |
068952b4d4c0
Add actual data structures for handling message catalogs, so that more code can be reused here between the frontends.
cmlenz
parents:
diff
changeset
|
20 |
068952b4d4c0
Add actual data structures for handling message catalogs, so that more code can be reused here between the frontends.
cmlenz
parents:
diff
changeset
|
21 class MessageTestCase(unittest.TestCase): |
068952b4d4c0
Add actual data structures for handling message catalogs, so that more code can be reused here between the frontends.
cmlenz
parents:
diff
changeset
|
22 |
068952b4d4c0
Add actual data structures for handling message catalogs, so that more code can be reused here between the frontends.
cmlenz
parents:
diff
changeset
|
23 def test_python_format(self): |
068952b4d4c0
Add actual data structures for handling message catalogs, so that more code can be reused here between the frontends.
cmlenz
parents:
diff
changeset
|
24 assert catalog.PYTHON_FORMAT('foo %d bar') |
068952b4d4c0
Add actual data structures for handling message catalogs, so that more code can be reused here between the frontends.
cmlenz
parents:
diff
changeset
|
25 assert catalog.PYTHON_FORMAT('foo %s bar') |
82
f421e5576d26
Added support for translator comments at the API and frontends levels.(See #12, item 1). Updated docs and tests accordingly.
palgarvio
parents:
71
diff
changeset
|
26 assert catalog.PYTHON_FORMAT('foo %r bar') |
f421e5576d26
Added support for translator comments at the API and frontends levels.(See #12, item 1). Updated docs and tests accordingly.
palgarvio
parents:
71
diff
changeset
|
27 |
f421e5576d26
Added support for translator comments at the API and frontends levels.(See #12, item 1). Updated docs and tests accordingly.
palgarvio
parents:
71
diff
changeset
|
28 def test_translator_comments(self): |
f421e5576d26
Added support for translator comments at the API and frontends levels.(See #12, item 1). Updated docs and tests accordingly.
palgarvio
parents:
71
diff
changeset
|
29 mess = catalog.Message('foo', comments=['Comment About `foo`']) |
f421e5576d26
Added support for translator comments at the API and frontends levels.(See #12, item 1). Updated docs and tests accordingly.
palgarvio
parents:
71
diff
changeset
|
30 self.assertEqual(mess.comments, ['Comment About `foo`']) |
f421e5576d26
Added support for translator comments at the API and frontends levels.(See #12, item 1). Updated docs and tests accordingly.
palgarvio
parents:
71
diff
changeset
|
31 mess = catalog.Message('foo', |
f421e5576d26
Added support for translator comments at the API and frontends levels.(See #12, item 1). Updated docs and tests accordingly.
palgarvio
parents:
71
diff
changeset
|
32 comments=['Comment 1 About `foo`', |
f421e5576d26
Added support for translator comments at the API and frontends levels.(See #12, item 1). Updated docs and tests accordingly.
palgarvio
parents:
71
diff
changeset
|
33 'Comment 2 About `foo`']) |
f421e5576d26
Added support for translator comments at the API and frontends levels.(See #12, item 1). Updated docs and tests accordingly.
palgarvio
parents:
71
diff
changeset
|
34 self.assertEqual(mess.comments, ['Comment 1 About `foo`', |
f421e5576d26
Added support for translator comments at the API and frontends levels.(See #12, item 1). Updated docs and tests accordingly.
palgarvio
parents:
71
diff
changeset
|
35 'Comment 2 About `foo`']) |
58
068952b4d4c0
Add actual data structures for handling message catalogs, so that more code can be reused here between the frontends.
cmlenz
parents:
diff
changeset
|
36 |
068952b4d4c0
Add actual data structures for handling message catalogs, so that more code can be reused here between the frontends.
cmlenz
parents:
diff
changeset
|
37 |
71
b260ffa01a2d
Message catalogs can have multiple messages with the same ID, where some of them have plural strings, and others don't. Still the same message.
cmlenz
parents:
69
diff
changeset
|
38 class CatalogTestCase(unittest.TestCase): |
b260ffa01a2d
Message catalogs can have multiple messages with the same ID, where some of them have plural strings, and others don't. Still the same message.
cmlenz
parents:
69
diff
changeset
|
39 |
b260ffa01a2d
Message catalogs can have multiple messages with the same ID, where some of them have plural strings, and others don't. Still the same message.
cmlenz
parents:
69
diff
changeset
|
40 def test_two_messages_with_same_singular(self): |
b260ffa01a2d
Message catalogs can have multiple messages with the same ID, where some of them have plural strings, and others don't. Still the same message.
cmlenz
parents:
69
diff
changeset
|
41 cat = catalog.Catalog() |
b260ffa01a2d
Message catalogs can have multiple messages with the same ID, where some of them have plural strings, and others don't. Still the same message.
cmlenz
parents:
69
diff
changeset
|
42 cat.add('foo') |
b260ffa01a2d
Message catalogs can have multiple messages with the same ID, where some of them have plural strings, and others don't. Still the same message.
cmlenz
parents:
69
diff
changeset
|
43 cat.add(('foo', 'foos')) |
b260ffa01a2d
Message catalogs can have multiple messages with the same ID, where some of them have plural strings, and others don't. Still the same message.
cmlenz
parents:
69
diff
changeset
|
44 self.assertEqual(1, len(cat)) |
97
debd9ac3bb4d
Fix for #11 (use local timezone in timestamps of generated POT).
cmlenz
parents:
91
diff
changeset
|
45 |
91
f517ad70d8fc
Unittest for the problem reported by pjenvey fixed on [88].
palgarvio
parents:
82
diff
changeset
|
46 def test_update_message_updates_comments(self): |
f517ad70d8fc
Unittest for the problem reported by pjenvey fixed on [88].
palgarvio
parents:
82
diff
changeset
|
47 cat = catalog.Catalog() |
f517ad70d8fc
Unittest for the problem reported by pjenvey fixed on [88].
palgarvio
parents:
82
diff
changeset
|
48 cat[u'foo'] = catalog.Message('foo', locations=[('main.py', 5)]) |
f517ad70d8fc
Unittest for the problem reported by pjenvey fixed on [88].
palgarvio
parents:
82
diff
changeset
|
49 self.assertEqual(cat[u'foo'].comments, []) |
f517ad70d8fc
Unittest for the problem reported by pjenvey fixed on [88].
palgarvio
parents:
82
diff
changeset
|
50 # Update cat[u'foo'] with a new location and a comment |
f517ad70d8fc
Unittest for the problem reported by pjenvey fixed on [88].
palgarvio
parents:
82
diff
changeset
|
51 cat[u'foo'] = catalog.Message('foo', locations=[('main.py', 7)], |
f517ad70d8fc
Unittest for the problem reported by pjenvey fixed on [88].
palgarvio
parents:
82
diff
changeset
|
52 comments=['Foo Bar comment 1']) |
f517ad70d8fc
Unittest for the problem reported by pjenvey fixed on [88].
palgarvio
parents:
82
diff
changeset
|
53 self.assertEqual(cat[u'foo'].comments, ['Foo Bar comment 1']) |
f517ad70d8fc
Unittest for the problem reported by pjenvey fixed on [88].
palgarvio
parents:
82
diff
changeset
|
54 # now add yet another location with another comment |
f517ad70d8fc
Unittest for the problem reported by pjenvey fixed on [88].
palgarvio
parents:
82
diff
changeset
|
55 cat[u'foo'] = catalog.Message('foo', locations=[('main.py', 9)], |
f517ad70d8fc
Unittest for the problem reported by pjenvey fixed on [88].
palgarvio
parents:
82
diff
changeset
|
56 comments=['Foo Bar comment 2']) |
f517ad70d8fc
Unittest for the problem reported by pjenvey fixed on [88].
palgarvio
parents:
82
diff
changeset
|
57 self.assertEqual(cat[u'foo'].comments, |
f517ad70d8fc
Unittest for the problem reported by pjenvey fixed on [88].
palgarvio
parents:
82
diff
changeset
|
58 ['Foo Bar comment 1', 'Foo Bar comment 2']) |
71
b260ffa01a2d
Message catalogs can have multiple messages with the same ID, where some of them have plural strings, and others don't. Still the same message.
cmlenz
parents:
69
diff
changeset
|
59 |
b260ffa01a2d
Message catalogs can have multiple messages with the same ID, where some of them have plural strings, and others don't. Still the same message.
cmlenz
parents:
69
diff
changeset
|
60 |
58
068952b4d4c0
Add actual data structures for handling message catalogs, so that more code can be reused here between the frontends.
cmlenz
parents:
diff
changeset
|
61 def suite(): |
068952b4d4c0
Add actual data structures for handling message catalogs, so that more code can be reused here between the frontends.
cmlenz
parents:
diff
changeset
|
62 suite = unittest.TestSuite() |
69 | 63 suite.addTest(doctest.DocTestSuite(catalog, optionflags=doctest.ELLIPSIS)) |
58
068952b4d4c0
Add actual data structures for handling message catalogs, so that more code can be reused here between the frontends.
cmlenz
parents:
diff
changeset
|
64 suite.addTest(unittest.makeSuite(MessageTestCase)) |
71
b260ffa01a2d
Message catalogs can have multiple messages with the same ID, where some of them have plural strings, and others don't. Still the same message.
cmlenz
parents:
69
diff
changeset
|
65 suite.addTest(unittest.makeSuite(CatalogTestCase)) |
58
068952b4d4c0
Add actual data structures for handling message catalogs, so that more code can be reused here between the frontends.
cmlenz
parents:
diff
changeset
|
66 return suite |
068952b4d4c0
Add actual data structures for handling message catalogs, so that more code can be reused here between the frontends.
cmlenz
parents:
diff
changeset
|
67 |
068952b4d4c0
Add actual data structures for handling message catalogs, so that more code can be reused here between the frontends.
cmlenz
parents:
diff
changeset
|
68 if __name__ == '__main__': |
068952b4d4c0
Add actual data structures for handling message catalogs, so that more code can be reused here between the frontends.
cmlenz
parents:
diff
changeset
|
69 unittest.main(defaultTest='suite') |