annotate 0.9.x/babel/messages/tests/catalog.py @ 371:4b63ce84c6ae stable

Ported [388:405/trunk] to 0.9.x branch.
author cmlenz
date Fri, 27 Jun 2008 15:22:12 +0000
parents 9121183df490
children 8941027e8b22
rev   line source
263
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
1 # -*- coding: utf-8 -*-
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
2 #
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
3 # Copyright (C) 2007 Edgewall Software
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
4 # All rights reserved.
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
5 #
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
6 # This software is licensed as described in the file COPYING, which
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
7 # you should have received as part of this distribution. The terms
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
8 # are also available at http://babel.edgewall.org/wiki/License.
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
9 #
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
10 # This software consists of voluntary contributions made by many
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
11 # individuals. For the exact contribution history, see the revision
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
12 # history and logs, available at http://babel.edgewall.org/log/.
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
13
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
14 import doctest
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
15 import unittest
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
16
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
17 from babel.messages import catalog
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
18
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
19
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
20 class MessageTestCase(unittest.TestCase):
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
21
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
22 def test_python_format(self):
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
23 assert catalog.PYTHON_FORMAT.search('foo %d bar')
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
24 assert catalog.PYTHON_FORMAT.search('foo %s bar')
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
25 assert catalog.PYTHON_FORMAT.search('foo %r bar')
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
26 assert catalog.PYTHON_FORMAT.search('foo %(name).1f')
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
27 assert catalog.PYTHON_FORMAT.search('foo %(name)3.3f')
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
28 assert catalog.PYTHON_FORMAT.search('foo %(name)3f')
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
29 assert catalog.PYTHON_FORMAT.search('foo %(name)06d')
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
30 assert catalog.PYTHON_FORMAT.search('foo %(name)Li')
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
31 assert catalog.PYTHON_FORMAT.search('foo %(name)#d')
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
32 assert catalog.PYTHON_FORMAT.search('foo %(name)-4.4hs')
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
33 assert catalog.PYTHON_FORMAT.search('foo %(name)*.3f')
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
34 assert catalog.PYTHON_FORMAT.search('foo %(name).*f')
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
35 assert catalog.PYTHON_FORMAT.search('foo %(name)3.*f')
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
36 assert catalog.PYTHON_FORMAT.search('foo %(name)*.*f')
371
4b63ce84c6ae Ported [388:405/trunk] to 0.9.x branch.
cmlenz
parents: 316
diff changeset
37 assert catalog.PYTHON_FORMAT.search('foo %()s')
263
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
38
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
39 def test_translator_comments(self):
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
40 mess = catalog.Message('foo', user_comments=['Comment About `foo`'])
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
41 self.assertEqual(mess.user_comments, ['Comment About `foo`'])
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
42 mess = catalog.Message('foo',
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
43 auto_comments=['Comment 1 About `foo`',
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
44 'Comment 2 About `foo`'])
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
45 self.assertEqual(mess.auto_comments, ['Comment 1 About `foo`',
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
46 'Comment 2 About `foo`'])
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
47
371
4b63ce84c6ae Ported [388:405/trunk] to 0.9.x branch.
cmlenz
parents: 316
diff changeset
48 def test_clone_message_object(self):
4b63ce84c6ae Ported [388:405/trunk] to 0.9.x branch.
cmlenz
parents: 316
diff changeset
49 msg = catalog.Message('foo', locations=[('foo.py', 42)])
4b63ce84c6ae Ported [388:405/trunk] to 0.9.x branch.
cmlenz
parents: 316
diff changeset
50 clone = msg.clone()
4b63ce84c6ae Ported [388:405/trunk] to 0.9.x branch.
cmlenz
parents: 316
diff changeset
51 clone.locations.append(('bar.py', 42))
4b63ce84c6ae Ported [388:405/trunk] to 0.9.x branch.
cmlenz
parents: 316
diff changeset
52 self.assertEqual(msg.locations, [('foo.py', 42)])
4b63ce84c6ae Ported [388:405/trunk] to 0.9.x branch.
cmlenz
parents: 316
diff changeset
53 msg.flags.add('fuzzy')
4b63ce84c6ae Ported [388:405/trunk] to 0.9.x branch.
cmlenz
parents: 316
diff changeset
54 assert not clone.fuzzy and msg.fuzzy
4b63ce84c6ae Ported [388:405/trunk] to 0.9.x branch.
cmlenz
parents: 316
diff changeset
55
263
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
56
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
57 class CatalogTestCase(unittest.TestCase):
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
58
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
59 def test_two_messages_with_same_singular(self):
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
60 cat = catalog.Catalog()
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
61 cat.add('foo')
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
62 cat.add(('foo', 'foos'))
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
63 self.assertEqual(1, len(cat))
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
64
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
65 def test_duplicate_auto_comment(self):
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
66 cat = catalog.Catalog()
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
67 cat.add('foo', auto_comments=['A comment'])
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
68 cat.add('foo', auto_comments=['A comment', 'Another comment'])
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
69 self.assertEqual(['A comment', 'Another comment'],
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
70 cat['foo'].auto_comments)
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
71
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
72 def test_duplicate_user_comment(self):
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
73 cat = catalog.Catalog()
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
74 cat.add('foo', user_comments=['A comment'])
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
75 cat.add('foo', user_comments=['A comment', 'Another comment'])
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
76 self.assertEqual(['A comment', 'Another comment'],
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
77 cat['foo'].user_comments)
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
78
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
79 def test_duplicate_location(self):
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
80 cat = catalog.Catalog()
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
81 cat.add('foo', locations=[('foo.py', 1)])
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
82 cat.add('foo', locations=[('foo.py', 1)])
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
83 self.assertEqual([('foo.py', 1)], cat['foo'].locations)
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
84
280
65c6ca63aca3 Ported [305] to 0.9.x branch.
cmlenz
parents: 263
diff changeset
85 def test_update_message_changed_to_plural(self):
65c6ca63aca3 Ported [305] to 0.9.x branch.
cmlenz
parents: 263
diff changeset
86 cat = catalog.Catalog()
65c6ca63aca3 Ported [305] to 0.9.x branch.
cmlenz
parents: 263
diff changeset
87 cat.add(u'foo', u'Voh')
65c6ca63aca3 Ported [305] to 0.9.x branch.
cmlenz
parents: 263
diff changeset
88 tmpl = catalog.Catalog()
65c6ca63aca3 Ported [305] to 0.9.x branch.
cmlenz
parents: 263
diff changeset
89 tmpl.add((u'foo', u'foos'))
65c6ca63aca3 Ported [305] to 0.9.x branch.
cmlenz
parents: 263
diff changeset
90 cat.update(tmpl)
65c6ca63aca3 Ported [305] to 0.9.x branch.
cmlenz
parents: 263
diff changeset
91 self.assertEqual((u'Voh', ''), cat['foo'].string)
65c6ca63aca3 Ported [305] to 0.9.x branch.
cmlenz
parents: 263
diff changeset
92 assert cat['foo'].fuzzy
65c6ca63aca3 Ported [305] to 0.9.x branch.
cmlenz
parents: 263
diff changeset
93
65c6ca63aca3 Ported [305] to 0.9.x branch.
cmlenz
parents: 263
diff changeset
94 def test_update_message_changed_to_simple(self):
65c6ca63aca3 Ported [305] to 0.9.x branch.
cmlenz
parents: 263
diff changeset
95 cat = catalog.Catalog()
65c6ca63aca3 Ported [305] to 0.9.x branch.
cmlenz
parents: 263
diff changeset
96 cat.add((u'foo' u'foos'), (u'Voh', u'Vöhs'))
65c6ca63aca3 Ported [305] to 0.9.x branch.
cmlenz
parents: 263
diff changeset
97 tmpl = catalog.Catalog()
65c6ca63aca3 Ported [305] to 0.9.x branch.
cmlenz
parents: 263
diff changeset
98 tmpl.add(u'foo')
65c6ca63aca3 Ported [305] to 0.9.x branch.
cmlenz
parents: 263
diff changeset
99 cat.update(tmpl)
65c6ca63aca3 Ported [305] to 0.9.x branch.
cmlenz
parents: 263
diff changeset
100 self.assertEqual(u'Voh', cat['foo'].string)
65c6ca63aca3 Ported [305] to 0.9.x branch.
cmlenz
parents: 263
diff changeset
101 assert cat['foo'].fuzzy
65c6ca63aca3 Ported [305] to 0.9.x branch.
cmlenz
parents: 263
diff changeset
102
263
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
103 def test_update_message_updates_comments(self):
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
104 cat = catalog.Catalog()
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
105 cat[u'foo'] = catalog.Message('foo', locations=[('main.py', 5)])
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
106 self.assertEqual(cat[u'foo'].auto_comments, [])
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
107 self.assertEqual(cat[u'foo'].user_comments, [])
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
108 # Update cat[u'foo'] with a new location and a comment
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
109 cat[u'foo'] = catalog.Message('foo', locations=[('main.py', 7)],
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
110 user_comments=['Foo Bar comment 1'])
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
111 self.assertEqual(cat[u'foo'].user_comments, ['Foo Bar comment 1'])
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
112 # now add yet another location with another comment
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
113 cat[u'foo'] = catalog.Message('foo', locations=[('main.py', 9)],
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
114 auto_comments=['Foo Bar comment 2'])
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
115 self.assertEqual(cat[u'foo'].auto_comments, ['Foo Bar comment 2'])
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
116
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
117 def test_update_fuzzy_matching_with_case_change(self):
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
118 cat = catalog.Catalog()
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
119 cat.add('foo', 'Voh')
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
120 cat.add('bar', 'Bahr')
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
121 tmpl = catalog.Catalog()
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
122 tmpl.add('Foo')
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
123 cat.update(tmpl)
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
124 self.assertEqual(1, len(cat.obsolete))
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
125 assert 'foo' not in cat
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
126
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
127 self.assertEqual('Voh', cat['Foo'].string)
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
128 self.assertEqual(True, cat['Foo'].fuzzy)
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
129
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
130 def test_update_fuzzy_matching_with_char_change(self):
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
131 cat = catalog.Catalog()
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
132 cat.add('fo', 'Voh')
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
133 cat.add('bar', 'Bahr')
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
134 tmpl = catalog.Catalog()
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
135 tmpl.add('foo')
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
136 cat.update(tmpl)
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
137 self.assertEqual(1, len(cat.obsolete))
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
138 assert 'fo' not in cat
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
139
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
140 self.assertEqual('Voh', cat['foo'].string)
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
141 self.assertEqual(True, cat['foo'].fuzzy)
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
142
316
9121183df490 Ported [346] and [347] to 0.9.x branch.
cmlenz
parents: 280
diff changeset
143 def test_update_fuzzy_matching_no_msgstr(self):
9121183df490 Ported [346] and [347] to 0.9.x branch.
cmlenz
parents: 280
diff changeset
144 cat = catalog.Catalog()
9121183df490 Ported [346] and [347] to 0.9.x branch.
cmlenz
parents: 280
diff changeset
145 cat.add('fo', '')
9121183df490 Ported [346] and [347] to 0.9.x branch.
cmlenz
parents: 280
diff changeset
146 tmpl = catalog.Catalog()
9121183df490 Ported [346] and [347] to 0.9.x branch.
cmlenz
parents: 280
diff changeset
147 tmpl.add('fo')
9121183df490 Ported [346] and [347] to 0.9.x branch.
cmlenz
parents: 280
diff changeset
148 tmpl.add('foo')
9121183df490 Ported [346] and [347] to 0.9.x branch.
cmlenz
parents: 280
diff changeset
149 cat.update(tmpl)
9121183df490 Ported [346] and [347] to 0.9.x branch.
cmlenz
parents: 280
diff changeset
150 assert 'fo' in cat
9121183df490 Ported [346] and [347] to 0.9.x branch.
cmlenz
parents: 280
diff changeset
151 assert 'foo' in cat
9121183df490 Ported [346] and [347] to 0.9.x branch.
cmlenz
parents: 280
diff changeset
152
9121183df490 Ported [346] and [347] to 0.9.x branch.
cmlenz
parents: 280
diff changeset
153 self.assertEqual('', cat['fo'].string)
9121183df490 Ported [346] and [347] to 0.9.x branch.
cmlenz
parents: 280
diff changeset
154 self.assertEqual(False, cat['fo'].fuzzy)
9121183df490 Ported [346] and [347] to 0.9.x branch.
cmlenz
parents: 280
diff changeset
155 self.assertEqual(None, cat['foo'].string)
9121183df490 Ported [346] and [347] to 0.9.x branch.
cmlenz
parents: 280
diff changeset
156 self.assertEqual(False, cat['foo'].fuzzy)
9121183df490 Ported [346] and [347] to 0.9.x branch.
cmlenz
parents: 280
diff changeset
157
9121183df490 Ported [346] and [347] to 0.9.x branch.
cmlenz
parents: 280
diff changeset
158 def test_update_fuzzy_matching_no_cascading(self):
9121183df490 Ported [346] and [347] to 0.9.x branch.
cmlenz
parents: 280
diff changeset
159 cat = catalog.Catalog()
9121183df490 Ported [346] and [347] to 0.9.x branch.
cmlenz
parents: 280
diff changeset
160 cat.add('fo', 'Voh')
9121183df490 Ported [346] and [347] to 0.9.x branch.
cmlenz
parents: 280
diff changeset
161 cat.add('foo', 'Vohe')
9121183df490 Ported [346] and [347] to 0.9.x branch.
cmlenz
parents: 280
diff changeset
162 tmpl = catalog.Catalog()
9121183df490 Ported [346] and [347] to 0.9.x branch.
cmlenz
parents: 280
diff changeset
163 tmpl.add('fo')
9121183df490 Ported [346] and [347] to 0.9.x branch.
cmlenz
parents: 280
diff changeset
164 tmpl.add('foo')
9121183df490 Ported [346] and [347] to 0.9.x branch.
cmlenz
parents: 280
diff changeset
165 tmpl.add('fooo')
9121183df490 Ported [346] and [347] to 0.9.x branch.
cmlenz
parents: 280
diff changeset
166 cat.update(tmpl)
9121183df490 Ported [346] and [347] to 0.9.x branch.
cmlenz
parents: 280
diff changeset
167 assert 'fo' in cat
9121183df490 Ported [346] and [347] to 0.9.x branch.
cmlenz
parents: 280
diff changeset
168 assert 'foo' in cat
9121183df490 Ported [346] and [347] to 0.9.x branch.
cmlenz
parents: 280
diff changeset
169
9121183df490 Ported [346] and [347] to 0.9.x branch.
cmlenz
parents: 280
diff changeset
170 self.assertEqual('Voh', cat['fo'].string)
9121183df490 Ported [346] and [347] to 0.9.x branch.
cmlenz
parents: 280
diff changeset
171 self.assertEqual(False, cat['fo'].fuzzy)
9121183df490 Ported [346] and [347] to 0.9.x branch.
cmlenz
parents: 280
diff changeset
172 self.assertEqual('Vohe', cat['foo'].string)
9121183df490 Ported [346] and [347] to 0.9.x branch.
cmlenz
parents: 280
diff changeset
173 self.assertEqual(False, cat['foo'].fuzzy)
9121183df490 Ported [346] and [347] to 0.9.x branch.
cmlenz
parents: 280
diff changeset
174 self.assertEqual('Vohe', cat['fooo'].string)
9121183df490 Ported [346] and [347] to 0.9.x branch.
cmlenz
parents: 280
diff changeset
175 self.assertEqual(True, cat['fooo'].fuzzy)
9121183df490 Ported [346] and [347] to 0.9.x branch.
cmlenz
parents: 280
diff changeset
176
263
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
177 def test_update_without_fuzzy_matching(self):
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
178 cat = catalog.Catalog()
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
179 cat.add('fo', 'Voh')
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
180 cat.add('bar', 'Bahr')
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
181 tmpl = catalog.Catalog()
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
182 tmpl.add('foo')
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
183 cat.update(tmpl, no_fuzzy_matching=True)
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
184 self.assertEqual(2, len(cat.obsolete))
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
185
316
9121183df490 Ported [346] and [347] to 0.9.x branch.
cmlenz
parents: 280
diff changeset
186 def test_update_no_template_mutation(self):
9121183df490 Ported [346] and [347] to 0.9.x branch.
cmlenz
parents: 280
diff changeset
187 tmpl = catalog.Catalog()
9121183df490 Ported [346] and [347] to 0.9.x branch.
cmlenz
parents: 280
diff changeset
188 tmpl.add('foo')
9121183df490 Ported [346] and [347] to 0.9.x branch.
cmlenz
parents: 280
diff changeset
189 cat1 = catalog.Catalog()
9121183df490 Ported [346] and [347] to 0.9.x branch.
cmlenz
parents: 280
diff changeset
190 cat1.add('foo', 'Voh')
9121183df490 Ported [346] and [347] to 0.9.x branch.
cmlenz
parents: 280
diff changeset
191 cat1.update(tmpl)
9121183df490 Ported [346] and [347] to 0.9.x branch.
cmlenz
parents: 280
diff changeset
192 cat2 = catalog.Catalog()
9121183df490 Ported [346] and [347] to 0.9.x branch.
cmlenz
parents: 280
diff changeset
193 cat2.update(tmpl)
9121183df490 Ported [346] and [347] to 0.9.x branch.
cmlenz
parents: 280
diff changeset
194
9121183df490 Ported [346] and [347] to 0.9.x branch.
cmlenz
parents: 280
diff changeset
195 self.assertEqual(None, cat2['foo'].string)
9121183df490 Ported [346] and [347] to 0.9.x branch.
cmlenz
parents: 280
diff changeset
196 self.assertEqual(False, cat2['foo'].fuzzy)
263
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
197
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
198 def suite():
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
199 suite = unittest.TestSuite()
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
200 suite.addTest(doctest.DocTestSuite(catalog, optionflags=doctest.ELLIPSIS))
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
201 suite.addTest(unittest.makeSuite(MessageTestCase))
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
202 suite.addTest(unittest.makeSuite(CatalogTestCase))
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
203 return suite
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
204
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
205 if __name__ == '__main__':
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
206 unittest.main(defaultTest='suite')
Copyright (C) 2012-2017 Edgewall Software