annotate babel/messages/tests/frontend.py @ 508:dbb70d75718a stable-0.9.x

Fix Python 2.3 compatibility for 0.9 branch (closes #233)
author fschwarz
date Fri, 04 Mar 2011 14:16:15 +0000
parents ee0b9aa340df
children 4a5340c0821b
rev   line source
12
a2c54ef107c2 * Removed pkg_resources/setuptools requirement from various places.
cmlenz
parents:
diff changeset
1 # -*- coding: utf-8 -*-
a2c54ef107c2 * Removed pkg_resources/setuptools requirement from various places.
cmlenz
parents:
diff changeset
2 #
a2c54ef107c2 * Removed pkg_resources/setuptools requirement from various places.
cmlenz
parents:
diff changeset
3 # Copyright (C) 2007 Edgewall Software
a2c54ef107c2 * Removed pkg_resources/setuptools requirement from various places.
cmlenz
parents:
diff changeset
4 # All rights reserved.
a2c54ef107c2 * Removed pkg_resources/setuptools requirement from various places.
cmlenz
parents:
diff changeset
5 #
a2c54ef107c2 * Removed pkg_resources/setuptools requirement from various places.
cmlenz
parents:
diff changeset
6 # This software is licensed as described in the file COPYING, which
a2c54ef107c2 * Removed pkg_resources/setuptools requirement from various places.
cmlenz
parents:
diff changeset
7 # you should have received as part of this distribution. The terms
a2c54ef107c2 * Removed pkg_resources/setuptools requirement from various places.
cmlenz
parents:
diff changeset
8 # are also available at http://babel.edgewall.org/wiki/License.
a2c54ef107c2 * Removed pkg_resources/setuptools requirement from various places.
cmlenz
parents:
diff changeset
9 #
a2c54ef107c2 * Removed pkg_resources/setuptools requirement from various places.
cmlenz
parents:
diff changeset
10 # This software consists of voluntary contributions made by many
a2c54ef107c2 * Removed pkg_resources/setuptools requirement from various places.
cmlenz
parents:
diff changeset
11 # individuals. For the exact contribution history, see the revision
a2c54ef107c2 * Removed pkg_resources/setuptools requirement from various places.
cmlenz
parents:
diff changeset
12 # history and logs, available at http://babel.edgewall.org/log/.
a2c54ef107c2 * Removed pkg_resources/setuptools requirement from various places.
cmlenz
parents:
diff changeset
13
134
60565dc8495d More fixes for Windows compatibility:
cmlenz
parents: 128
diff changeset
14 from datetime import datetime
117
41506e62701f Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 115
diff changeset
15 from distutils.dist import Distribution
379
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
16 from distutils.errors import DistutilsOptionError
117
41506e62701f Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 115
diff changeset
17 from distutils.log import _global_log
12
a2c54ef107c2 * Removed pkg_resources/setuptools requirement from various places.
cmlenz
parents:
diff changeset
18 import doctest
117
41506e62701f Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 115
diff changeset
19 import os
120
733cca7ff6a5 Added tests for `new_catalog` distutils command.
cmlenz
parents: 117
diff changeset
20 import shutil
127
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
21 from StringIO import StringIO
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
22 import sys
117
41506e62701f Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 115
diff changeset
23 import time
12
a2c54ef107c2 * Removed pkg_resources/setuptools requirement from various places.
cmlenz
parents:
diff changeset
24 import unittest
a2c54ef107c2 * Removed pkg_resources/setuptools requirement from various places.
cmlenz
parents:
diff changeset
25
114
5ec3364f250a Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 54
diff changeset
26 from babel import __version__ as VERSION
134
60565dc8495d More fixes for Windows compatibility:
cmlenz
parents: 128
diff changeset
27 from babel.dates import format_datetime
117
41506e62701f Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 115
diff changeset
28 from babel.messages import frontend
134
60565dc8495d More fixes for Windows compatibility:
cmlenz
parents: 128
diff changeset
29 from babel.util import LOCALTZ
114
5ec3364f250a Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 54
diff changeset
30
117
41506e62701f Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 115
diff changeset
31
160
80e51aabc440 Add MO file generation. Closes #21.
cmlenz
parents: 135
diff changeset
32 class CompileCatalogTestCase(unittest.TestCase):
80e51aabc440 Add MO file generation. Closes #21.
cmlenz
parents: 135
diff changeset
33
80e51aabc440 Add MO file generation. Closes #21.
cmlenz
parents: 135
diff changeset
34 def setUp(self):
80e51aabc440 Add MO file generation. Closes #21.
cmlenz
parents: 135
diff changeset
35 self.olddir = os.getcwd()
80e51aabc440 Add MO file generation. Closes #21.
cmlenz
parents: 135
diff changeset
36 self.datadir = os.path.join(os.path.dirname(__file__), 'data')
80e51aabc440 Add MO file generation. Closes #21.
cmlenz
parents: 135
diff changeset
37 os.chdir(self.datadir)
80e51aabc440 Add MO file generation. Closes #21.
cmlenz
parents: 135
diff changeset
38 _global_log.threshold = 5 # shut up distutils logging
80e51aabc440 Add MO file generation. Closes #21.
cmlenz
parents: 135
diff changeset
39
80e51aabc440 Add MO file generation. Closes #21.
cmlenz
parents: 135
diff changeset
40 self.dist = Distribution(dict(
80e51aabc440 Add MO file generation. Closes #21.
cmlenz
parents: 135
diff changeset
41 name='TestProject',
80e51aabc440 Add MO file generation. Closes #21.
cmlenz
parents: 135
diff changeset
42 version='0.1',
80e51aabc440 Add MO file generation. Closes #21.
cmlenz
parents: 135
diff changeset
43 packages=['project']
80e51aabc440 Add MO file generation. Closes #21.
cmlenz
parents: 135
diff changeset
44 ))
80e51aabc440 Add MO file generation. Closes #21.
cmlenz
parents: 135
diff changeset
45 self.cmd = frontend.compile_catalog(self.dist)
80e51aabc440 Add MO file generation. Closes #21.
cmlenz
parents: 135
diff changeset
46 self.cmd.initialize_options()
80e51aabc440 Add MO file generation. Closes #21.
cmlenz
parents: 135
diff changeset
47
80e51aabc440 Add MO file generation. Closes #21.
cmlenz
parents: 135
diff changeset
48 def tearDown(self):
80e51aabc440 Add MO file generation. Closes #21.
cmlenz
parents: 135
diff changeset
49 os.chdir(self.olddir)
80e51aabc440 Add MO file generation. Closes #21.
cmlenz
parents: 135
diff changeset
50
80e51aabc440 Add MO file generation. Closes #21.
cmlenz
parents: 135
diff changeset
51 def test_no_directory_or_output_file_specified(self):
80e51aabc440 Add MO file generation. Closes #21.
cmlenz
parents: 135
diff changeset
52 self.cmd.locale = 'en_US'
80e51aabc440 Add MO file generation. Closes #21.
cmlenz
parents: 135
diff changeset
53 self.cmd.input_file = 'dummy'
80e51aabc440 Add MO file generation. Closes #21.
cmlenz
parents: 135
diff changeset
54 self.assertRaises(DistutilsOptionError, self.cmd.finalize_options)
80e51aabc440 Add MO file generation. Closes #21.
cmlenz
parents: 135
diff changeset
55
80e51aabc440 Add MO file generation. Closes #21.
cmlenz
parents: 135
diff changeset
56 def test_no_directory_or_input_file_specified(self):
80e51aabc440 Add MO file generation. Closes #21.
cmlenz
parents: 135
diff changeset
57 self.cmd.locale = 'en_US'
80e51aabc440 Add MO file generation. Closes #21.
cmlenz
parents: 135
diff changeset
58 self.cmd.output_file = 'dummy'
80e51aabc440 Add MO file generation. Closes #21.
cmlenz
parents: 135
diff changeset
59 self.assertRaises(DistutilsOptionError, self.cmd.finalize_options)
80e51aabc440 Add MO file generation. Closes #21.
cmlenz
parents: 135
diff changeset
60
80e51aabc440 Add MO file generation. Closes #21.
cmlenz
parents: 135
diff changeset
61
117
41506e62701f Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 115
diff changeset
62 class ExtractMessagesTestCase(unittest.TestCase):
41506e62701f Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 115
diff changeset
63
114
5ec3364f250a Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 54
diff changeset
64 def setUp(self):
5ec3364f250a Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 54
diff changeset
65 self.olddir = os.getcwd()
5ec3364f250a Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 54
diff changeset
66 self.datadir = os.path.join(os.path.dirname(__file__), 'data')
5ec3364f250a Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 54
diff changeset
67 os.chdir(self.datadir)
117
41506e62701f Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 115
diff changeset
68 _global_log.threshold = 5 # shut up distutils logging
41506e62701f Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 115
diff changeset
69
41506e62701f Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 115
diff changeset
70 self.dist = Distribution(dict(
41506e62701f Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 115
diff changeset
71 name='TestProject',
41506e62701f Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 115
diff changeset
72 version='0.1',
41506e62701f Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 115
diff changeset
73 packages=['project']
41506e62701f Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 115
diff changeset
74 ))
41506e62701f Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 115
diff changeset
75 self.cmd = frontend.extract_messages(self.dist)
41506e62701f Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 115
diff changeset
76 self.cmd.initialize_options()
41506e62701f Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 115
diff changeset
77
41506e62701f Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 115
diff changeset
78 def tearDown(self):
120
733cca7ff6a5 Added tests for `new_catalog` distutils command.
cmlenz
parents: 117
diff changeset
79 pot_file = os.path.join(self.datadir, 'project', 'i18n', 'temp.pot')
117
41506e62701f Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 115
diff changeset
80 if os.path.isfile(pot_file):
41506e62701f Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 115
diff changeset
81 os.unlink(pot_file)
41506e62701f Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 115
diff changeset
82
41506e62701f Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 115
diff changeset
83 os.chdir(self.olddir)
41506e62701f Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 115
diff changeset
84
41506e62701f Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 115
diff changeset
85 def test_neither_default_nor_custom_keywords(self):
120
733cca7ff6a5 Added tests for `new_catalog` distutils command.
cmlenz
parents: 117
diff changeset
86 self.cmd.output_file = 'dummy'
117
41506e62701f Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 115
diff changeset
87 self.cmd.no_default_keywords = True
41506e62701f Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 115
diff changeset
88 self.assertRaises(DistutilsOptionError, self.cmd.finalize_options)
41506e62701f Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 115
diff changeset
89
41506e62701f Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 115
diff changeset
90 def test_no_output_file_specified(self):
41506e62701f Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 115
diff changeset
91 self.assertRaises(DistutilsOptionError, self.cmd.finalize_options)
41506e62701f Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 115
diff changeset
92
41506e62701f Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 115
diff changeset
93 def test_both_sort_output_and_sort_by_file(self):
120
733cca7ff6a5 Added tests for `new_catalog` distutils command.
cmlenz
parents: 117
diff changeset
94 self.cmd.output_file = 'dummy'
117
41506e62701f Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 115
diff changeset
95 self.cmd.sort_output = True
41506e62701f Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 115
diff changeset
96 self.cmd.sort_by_file = True
41506e62701f Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 115
diff changeset
97 self.assertRaises(DistutilsOptionError, self.cmd.finalize_options)
41506e62701f Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 115
diff changeset
98
41506e62701f Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 115
diff changeset
99 def test_extraction_with_default_mapping(self):
41506e62701f Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 115
diff changeset
100 self.cmd.copyright_holder = 'FooBar, Inc.'
41506e62701f Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 115
diff changeset
101 self.cmd.msgid_bugs_address = 'bugs.address@email.tld'
120
733cca7ff6a5 Added tests for `new_catalog` distutils command.
cmlenz
parents: 117
diff changeset
102 self.cmd.output_file = 'project/i18n/temp.pot'
117
41506e62701f Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 115
diff changeset
103 self.cmd.add_comments = 'TRANSLATOR:,TRANSLATORS:'
41506e62701f Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 115
diff changeset
104
41506e62701f Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 115
diff changeset
105 self.cmd.finalize_options()
41506e62701f Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 115
diff changeset
106 self.cmd.run()
120
733cca7ff6a5 Added tests for `new_catalog` distutils command.
cmlenz
parents: 117
diff changeset
107
733cca7ff6a5 Added tests for `new_catalog` distutils command.
cmlenz
parents: 117
diff changeset
108 pot_file = os.path.join(self.datadir, 'project', 'i18n', 'temp.pot')
733cca7ff6a5 Added tests for `new_catalog` distutils command.
cmlenz
parents: 117
diff changeset
109 assert os.path.isfile(pot_file)
733cca7ff6a5 Added tests for `new_catalog` distutils command.
cmlenz
parents: 117
diff changeset
110
733cca7ff6a5 Added tests for `new_catalog` distutils command.
cmlenz
parents: 117
diff changeset
111 self.assertEqual(
114
5ec3364f250a Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 54
diff changeset
112 r"""# Translations template for TestProject.
117
41506e62701f Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 115
diff changeset
113 # Copyright (C) %(year)s FooBar, Inc.
114
5ec3364f250a Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 54
diff changeset
114 # This file is distributed under the same license as the TestProject
5ec3364f250a Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 54
diff changeset
115 # project.
5ec3364f250a Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 54
diff changeset
116 # FIRST AUTHOR <EMAIL@ADDRESS>, %(year)s.
5ec3364f250a Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 54
diff changeset
117 #
5ec3364f250a Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 54
diff changeset
118 #, fuzzy
5ec3364f250a Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 54
diff changeset
119 msgid ""
5ec3364f250a Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 54
diff changeset
120 msgstr ""
5ec3364f250a Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 54
diff changeset
121 "Project-Id-Version: TestProject 0.1\n"
5ec3364f250a Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 54
diff changeset
122 "Report-Msgid-Bugs-To: bugs.address@email.tld\n"
5ec3364f250a Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 54
diff changeset
123 "POT-Creation-Date: %(date)s\n"
5ec3364f250a Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 54
diff changeset
124 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
5ec3364f250a Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 54
diff changeset
125 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
5ec3364f250a Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 54
diff changeset
126 "Language-Team: LANGUAGE <LL@li.org>\n"
5ec3364f250a Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 54
diff changeset
127 "MIME-Version: 1.0\n"
5ec3364f250a Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 54
diff changeset
128 "Content-Type: text/plain; charset=utf-8\n"
5ec3364f250a Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 54
diff changeset
129 "Content-Transfer-Encoding: 8bit\n"
5ec3364f250a Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 54
diff changeset
130 "Generated-By: Babel %(version)s\n"
5ec3364f250a Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 54
diff changeset
131
346
faf0ead3a132 Merged revisions [358:360], [364:370], [373:378], [380:382] from [source:trunk].
cmlenz
parents: 251
diff changeset
132 #. TRANSLATOR: This will be a translator coment,
114
5ec3364f250a Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 54
diff changeset
133 #. that will include several lines
5ec3364f250a Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 54
diff changeset
134 #: project/file1.py:8
5ec3364f250a Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 54
diff changeset
135 msgid "bar"
5ec3364f250a Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 54
diff changeset
136 msgstr ""
5ec3364f250a Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 54
diff changeset
137
5ec3364f250a Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 54
diff changeset
138 #: project/file2.py:9
5ec3364f250a Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 54
diff changeset
139 msgid "foobar"
5ec3364f250a Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 54
diff changeset
140 msgid_plural "foobars"
5ec3364f250a Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 54
diff changeset
141 msgstr[0] ""
5ec3364f250a Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 54
diff changeset
142 msgstr[1] ""
5ec3364f250a Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 54
diff changeset
143
459
d176eb70f4f9 Ported r505 to 0.9.x stable branch.
cmlenz
parents: 379
diff changeset
144 #: project/ignored/this_wont_normally_be_here.py:11
114
5ec3364f250a Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 54
diff changeset
145 msgid "FooBar"
5ec3364f250a Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 54
diff changeset
146 msgid_plural "FooBars"
5ec3364f250a Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 54
diff changeset
147 msgstr[0] ""
5ec3364f250a Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 54
diff changeset
148 msgstr[1] ""
5ec3364f250a Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 54
diff changeset
149
5ec3364f250a Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 54
diff changeset
150 """ % {'version': VERSION,
5ec3364f250a Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 54
diff changeset
151 'year': time.strftime('%Y'),
134
60565dc8495d More fixes for Windows compatibility:
cmlenz
parents: 128
diff changeset
152 'date': format_datetime(datetime.now(LOCALTZ), 'yyyy-MM-dd HH:mmZ',
60565dc8495d More fixes for Windows compatibility:
cmlenz
parents: 128
diff changeset
153 tzinfo=LOCALTZ, locale='en')},
60565dc8495d More fixes for Windows compatibility:
cmlenz
parents: 128
diff changeset
154 open(pot_file, 'U').read())
117
41506e62701f Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 115
diff changeset
155
41506e62701f Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 115
diff changeset
156 def test_extraction_with_mapping_file(self):
41506e62701f Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 115
diff changeset
157 self.cmd.copyright_holder = 'FooBar, Inc.'
41506e62701f Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 115
diff changeset
158 self.cmd.msgid_bugs_address = 'bugs.address@email.tld'
41506e62701f Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 115
diff changeset
159 self.cmd.mapping_file = 'mapping.cfg'
120
733cca7ff6a5 Added tests for `new_catalog` distutils command.
cmlenz
parents: 117
diff changeset
160 self.cmd.output_file = 'project/i18n/temp.pot'
117
41506e62701f Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 115
diff changeset
161 self.cmd.add_comments = 'TRANSLATOR:,TRANSLATORS:'
41506e62701f Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 115
diff changeset
162
41506e62701f Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 115
diff changeset
163 self.cmd.finalize_options()
41506e62701f Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 115
diff changeset
164 self.cmd.run()
120
733cca7ff6a5 Added tests for `new_catalog` distutils command.
cmlenz
parents: 117
diff changeset
165
733cca7ff6a5 Added tests for `new_catalog` distutils command.
cmlenz
parents: 117
diff changeset
166 pot_file = os.path.join(self.datadir, 'project', 'i18n', 'temp.pot')
733cca7ff6a5 Added tests for `new_catalog` distutils command.
cmlenz
parents: 117
diff changeset
167 assert os.path.isfile(pot_file)
733cca7ff6a5 Added tests for `new_catalog` distutils command.
cmlenz
parents: 117
diff changeset
168
733cca7ff6a5 Added tests for `new_catalog` distutils command.
cmlenz
parents: 117
diff changeset
169 self.assertEqual(
114
5ec3364f250a Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 54
diff changeset
170 r"""# Translations template for TestProject.
117
41506e62701f Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 115
diff changeset
171 # Copyright (C) %(year)s FooBar, Inc.
114
5ec3364f250a Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 54
diff changeset
172 # This file is distributed under the same license as the TestProject
5ec3364f250a Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 54
diff changeset
173 # project.
5ec3364f250a Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 54
diff changeset
174 # FIRST AUTHOR <EMAIL@ADDRESS>, %(year)s.
5ec3364f250a Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 54
diff changeset
175 #
5ec3364f250a Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 54
diff changeset
176 #, fuzzy
5ec3364f250a Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 54
diff changeset
177 msgid ""
5ec3364f250a Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 54
diff changeset
178 msgstr ""
5ec3364f250a Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 54
diff changeset
179 "Project-Id-Version: TestProject 0.1\n"
5ec3364f250a Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 54
diff changeset
180 "Report-Msgid-Bugs-To: bugs.address@email.tld\n"
5ec3364f250a Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 54
diff changeset
181 "POT-Creation-Date: %(date)s\n"
5ec3364f250a Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 54
diff changeset
182 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
5ec3364f250a Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 54
diff changeset
183 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
5ec3364f250a Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 54
diff changeset
184 "Language-Team: LANGUAGE <LL@li.org>\n"
5ec3364f250a Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 54
diff changeset
185 "MIME-Version: 1.0\n"
5ec3364f250a Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 54
diff changeset
186 "Content-Type: text/plain; charset=utf-8\n"
5ec3364f250a Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 54
diff changeset
187 "Content-Transfer-Encoding: 8bit\n"
5ec3364f250a Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 54
diff changeset
188 "Generated-By: Babel %(version)s\n"
5ec3364f250a Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 54
diff changeset
189
346
faf0ead3a132 Merged revisions [358:360], [364:370], [373:378], [380:382] from [source:trunk].
cmlenz
parents: 251
diff changeset
190 #. TRANSLATOR: This will be a translator coment,
114
5ec3364f250a Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 54
diff changeset
191 #. that will include several lines
5ec3364f250a Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 54
diff changeset
192 #: project/file1.py:8
5ec3364f250a Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 54
diff changeset
193 msgid "bar"
5ec3364f250a Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 54
diff changeset
194 msgstr ""
5ec3364f250a Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 54
diff changeset
195
5ec3364f250a Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 54
diff changeset
196 #: project/file2.py:9
5ec3364f250a Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 54
diff changeset
197 msgid "foobar"
5ec3364f250a Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 54
diff changeset
198 msgid_plural "foobars"
5ec3364f250a Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 54
diff changeset
199 msgstr[0] ""
5ec3364f250a Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 54
diff changeset
200 msgstr[1] ""
5ec3364f250a Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 54
diff changeset
201
5ec3364f250a Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 54
diff changeset
202 """ % {'version': VERSION,
5ec3364f250a Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 54
diff changeset
203 'year': time.strftime('%Y'),
134
60565dc8495d More fixes for Windows compatibility:
cmlenz
parents: 128
diff changeset
204 'date': format_datetime(datetime.now(LOCALTZ), 'yyyy-MM-dd HH:mmZ',
60565dc8495d More fixes for Windows compatibility:
cmlenz
parents: 128
diff changeset
205 tzinfo=LOCALTZ, locale='en')},
60565dc8495d More fixes for Windows compatibility:
cmlenz
parents: 128
diff changeset
206 open(pot_file, 'U').read())
117
41506e62701f Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 115
diff changeset
207
41506e62701f Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 115
diff changeset
208 def test_extraction_with_mapping_dict(self):
41506e62701f Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 115
diff changeset
209 self.dist.message_extractors = {
41506e62701f Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 115
diff changeset
210 'project': [
459
d176eb70f4f9 Ported r505 to 0.9.x stable branch.
cmlenz
parents: 379
diff changeset
211 ('**/ignored/**.*', 'ignore', None),
d176eb70f4f9 Ported r505 to 0.9.x stable branch.
cmlenz
parents: 379
diff changeset
212 ('**.py', 'python', None),
117
41506e62701f Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 115
diff changeset
213 ]
41506e62701f Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 115
diff changeset
214 }
41506e62701f Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 115
diff changeset
215 self.cmd.copyright_holder = 'FooBar, Inc.'
41506e62701f Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 115
diff changeset
216 self.cmd.msgid_bugs_address = 'bugs.address@email.tld'
120
733cca7ff6a5 Added tests for `new_catalog` distutils command.
cmlenz
parents: 117
diff changeset
217 self.cmd.output_file = 'project/i18n/temp.pot'
117
41506e62701f Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 115
diff changeset
218 self.cmd.add_comments = 'TRANSLATOR:,TRANSLATORS:'
41506e62701f Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 115
diff changeset
219
41506e62701f Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 115
diff changeset
220 self.cmd.finalize_options()
41506e62701f Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 115
diff changeset
221 self.cmd.run()
120
733cca7ff6a5 Added tests for `new_catalog` distutils command.
cmlenz
parents: 117
diff changeset
222
733cca7ff6a5 Added tests for `new_catalog` distutils command.
cmlenz
parents: 117
diff changeset
223 pot_file = os.path.join(self.datadir, 'project', 'i18n', 'temp.pot')
733cca7ff6a5 Added tests for `new_catalog` distutils command.
cmlenz
parents: 117
diff changeset
224 assert os.path.isfile(pot_file)
733cca7ff6a5 Added tests for `new_catalog` distutils command.
cmlenz
parents: 117
diff changeset
225
733cca7ff6a5 Added tests for `new_catalog` distutils command.
cmlenz
parents: 117
diff changeset
226 self.assertEqual(
117
41506e62701f Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 115
diff changeset
227 r"""# Translations template for TestProject.
41506e62701f Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 115
diff changeset
228 # Copyright (C) %(year)s FooBar, Inc.
41506e62701f Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 115
diff changeset
229 # This file is distributed under the same license as the TestProject
41506e62701f Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 115
diff changeset
230 # project.
41506e62701f Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 115
diff changeset
231 # FIRST AUTHOR <EMAIL@ADDRESS>, %(year)s.
41506e62701f Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 115
diff changeset
232 #
41506e62701f Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 115
diff changeset
233 #, fuzzy
41506e62701f Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 115
diff changeset
234 msgid ""
41506e62701f Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 115
diff changeset
235 msgstr ""
41506e62701f Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 115
diff changeset
236 "Project-Id-Version: TestProject 0.1\n"
41506e62701f Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 115
diff changeset
237 "Report-Msgid-Bugs-To: bugs.address@email.tld\n"
41506e62701f Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 115
diff changeset
238 "POT-Creation-Date: %(date)s\n"
41506e62701f Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 115
diff changeset
239 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
41506e62701f Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 115
diff changeset
240 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
41506e62701f Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 115
diff changeset
241 "Language-Team: LANGUAGE <LL@li.org>\n"
41506e62701f Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 115
diff changeset
242 "MIME-Version: 1.0\n"
41506e62701f Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 115
diff changeset
243 "Content-Type: text/plain; charset=utf-8\n"
41506e62701f Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 115
diff changeset
244 "Content-Transfer-Encoding: 8bit\n"
41506e62701f Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 115
diff changeset
245 "Generated-By: Babel %(version)s\n"
41506e62701f Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 115
diff changeset
246
346
faf0ead3a132 Merged revisions [358:360], [364:370], [373:378], [380:382] from [source:trunk].
cmlenz
parents: 251
diff changeset
247 #. TRANSLATOR: This will be a translator coment,
117
41506e62701f Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 115
diff changeset
248 #. that will include several lines
41506e62701f Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 115
diff changeset
249 #: project/file1.py:8
41506e62701f Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 115
diff changeset
250 msgid "bar"
41506e62701f Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 115
diff changeset
251 msgstr ""
41506e62701f Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 115
diff changeset
252
41506e62701f Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 115
diff changeset
253 #: project/file2.py:9
41506e62701f Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 115
diff changeset
254 msgid "foobar"
41506e62701f Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 115
diff changeset
255 msgid_plural "foobars"
41506e62701f Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 115
diff changeset
256 msgstr[0] ""
41506e62701f Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 115
diff changeset
257 msgstr[1] ""
41506e62701f Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 115
diff changeset
258
41506e62701f Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 115
diff changeset
259 """ % {'version': VERSION,
41506e62701f Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 115
diff changeset
260 'year': time.strftime('%Y'),
134
60565dc8495d More fixes for Windows compatibility:
cmlenz
parents: 128
diff changeset
261 'date': format_datetime(datetime.now(LOCALTZ), 'yyyy-MM-dd HH:mmZ',
60565dc8495d More fixes for Windows compatibility:
cmlenz
parents: 128
diff changeset
262 tzinfo=LOCALTZ, locale='en')},
60565dc8495d More fixes for Windows compatibility:
cmlenz
parents: 128
diff changeset
263 open(pot_file, 'U').read())
120
733cca7ff6a5 Added tests for `new_catalog` distutils command.
cmlenz
parents: 117
diff changeset
264
733cca7ff6a5 Added tests for `new_catalog` distutils command.
cmlenz
parents: 117
diff changeset
265
181
9a1acb41e7dd The frontends now provide ways to update existing translations catalogs from a template. Closes #22.
cmlenz
parents: 177
diff changeset
266 class InitCatalogTestCase(unittest.TestCase):
120
733cca7ff6a5 Added tests for `new_catalog` distutils command.
cmlenz
parents: 117
diff changeset
267
733cca7ff6a5 Added tests for `new_catalog` distutils command.
cmlenz
parents: 117
diff changeset
268 def setUp(self):
733cca7ff6a5 Added tests for `new_catalog` distutils command.
cmlenz
parents: 117
diff changeset
269 self.olddir = os.getcwd()
733cca7ff6a5 Added tests for `new_catalog` distutils command.
cmlenz
parents: 117
diff changeset
270 self.datadir = os.path.join(os.path.dirname(__file__), 'data')
733cca7ff6a5 Added tests for `new_catalog` distutils command.
cmlenz
parents: 117
diff changeset
271 os.chdir(self.datadir)
733cca7ff6a5 Added tests for `new_catalog` distutils command.
cmlenz
parents: 117
diff changeset
272 _global_log.threshold = 5 # shut up distutils logging
733cca7ff6a5 Added tests for `new_catalog` distutils command.
cmlenz
parents: 117
diff changeset
273
733cca7ff6a5 Added tests for `new_catalog` distutils command.
cmlenz
parents: 117
diff changeset
274 self.dist = Distribution(dict(
733cca7ff6a5 Added tests for `new_catalog` distutils command.
cmlenz
parents: 117
diff changeset
275 name='TestProject',
733cca7ff6a5 Added tests for `new_catalog` distutils command.
cmlenz
parents: 117
diff changeset
276 version='0.1',
733cca7ff6a5 Added tests for `new_catalog` distutils command.
cmlenz
parents: 117
diff changeset
277 packages=['project']
733cca7ff6a5 Added tests for `new_catalog` distutils command.
cmlenz
parents: 117
diff changeset
278 ))
181
9a1acb41e7dd The frontends now provide ways to update existing translations catalogs from a template. Closes #22.
cmlenz
parents: 177
diff changeset
279 self.cmd = frontend.init_catalog(self.dist)
120
733cca7ff6a5 Added tests for `new_catalog` distutils command.
cmlenz
parents: 117
diff changeset
280 self.cmd.initialize_options()
733cca7ff6a5 Added tests for `new_catalog` distutils command.
cmlenz
parents: 117
diff changeset
281
733cca7ff6a5 Added tests for `new_catalog` distutils command.
cmlenz
parents: 117
diff changeset
282 def tearDown(self):
379
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
283 for dirname in ['en_US', 'ja_JP', 'lv_LV']:
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
284 locale_dir = os.path.join(self.datadir, 'project', 'i18n', dirname)
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
285 if os.path.isdir(locale_dir):
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
286 shutil.rmtree(locale_dir)
120
733cca7ff6a5 Added tests for `new_catalog` distutils command.
cmlenz
parents: 117
diff changeset
287
733cca7ff6a5 Added tests for `new_catalog` distutils command.
cmlenz
parents: 117
diff changeset
288 os.chdir(self.olddir)
733cca7ff6a5 Added tests for `new_catalog` distutils command.
cmlenz
parents: 117
diff changeset
289
733cca7ff6a5 Added tests for `new_catalog` distutils command.
cmlenz
parents: 117
diff changeset
290 def test_no_input_file(self):
733cca7ff6a5 Added tests for `new_catalog` distutils command.
cmlenz
parents: 117
diff changeset
291 self.cmd.locale = 'en_US'
733cca7ff6a5 Added tests for `new_catalog` distutils command.
cmlenz
parents: 117
diff changeset
292 self.cmd.output_file = 'dummy'
733cca7ff6a5 Added tests for `new_catalog` distutils command.
cmlenz
parents: 117
diff changeset
293 self.assertRaises(DistutilsOptionError, self.cmd.finalize_options)
733cca7ff6a5 Added tests for `new_catalog` distutils command.
cmlenz
parents: 117
diff changeset
294
733cca7ff6a5 Added tests for `new_catalog` distutils command.
cmlenz
parents: 117
diff changeset
295 def test_no_locale(self):
733cca7ff6a5 Added tests for `new_catalog` distutils command.
cmlenz
parents: 117
diff changeset
296 self.cmd.input_file = 'dummy'
733cca7ff6a5 Added tests for `new_catalog` distutils command.
cmlenz
parents: 117
diff changeset
297 self.cmd.output_file = 'dummy'
733cca7ff6a5 Added tests for `new_catalog` distutils command.
cmlenz
parents: 117
diff changeset
298 self.assertRaises(DistutilsOptionError, self.cmd.finalize_options)
733cca7ff6a5 Added tests for `new_catalog` distutils command.
cmlenz
parents: 117
diff changeset
299
121
78a9033b6839 Fix parsing of timezone in POT creation date.
cmlenz
parents: 120
diff changeset
300 def test_with_output_dir(self):
120
733cca7ff6a5 Added tests for `new_catalog` distutils command.
cmlenz
parents: 117
diff changeset
301 self.cmd.input_file = 'project/i18n/messages.pot'
733cca7ff6a5 Added tests for `new_catalog` distutils command.
cmlenz
parents: 117
diff changeset
302 self.cmd.locale = 'en_US'
733cca7ff6a5 Added tests for `new_catalog` distutils command.
cmlenz
parents: 117
diff changeset
303 self.cmd.output_dir = 'project/i18n'
733cca7ff6a5 Added tests for `new_catalog` distutils command.
cmlenz
parents: 117
diff changeset
304
733cca7ff6a5 Added tests for `new_catalog` distutils command.
cmlenz
parents: 117
diff changeset
305 self.cmd.finalize_options()
733cca7ff6a5 Added tests for `new_catalog` distutils command.
cmlenz
parents: 117
diff changeset
306 self.cmd.run()
733cca7ff6a5 Added tests for `new_catalog` distutils command.
cmlenz
parents: 117
diff changeset
307
733cca7ff6a5 Added tests for `new_catalog` distutils command.
cmlenz
parents: 117
diff changeset
308 po_file = os.path.join(self.datadir, 'project', 'i18n', 'en_US',
733cca7ff6a5 Added tests for `new_catalog` distutils command.
cmlenz
parents: 117
diff changeset
309 'LC_MESSAGES', 'messages.po')
733cca7ff6a5 Added tests for `new_catalog` distutils command.
cmlenz
parents: 117
diff changeset
310 assert os.path.isfile(po_file)
733cca7ff6a5 Added tests for `new_catalog` distutils command.
cmlenz
parents: 117
diff changeset
311
733cca7ff6a5 Added tests for `new_catalog` distutils command.
cmlenz
parents: 117
diff changeset
312 self.assertEqual(
733cca7ff6a5 Added tests for `new_catalog` distutils command.
cmlenz
parents: 117
diff changeset
313 r"""# English (United States) translations for TestProject.
733cca7ff6a5 Added tests for `new_catalog` distutils command.
cmlenz
parents: 117
diff changeset
314 # Copyright (C) 2007 FooBar, Inc.
733cca7ff6a5 Added tests for `new_catalog` distutils command.
cmlenz
parents: 117
diff changeset
315 # This file is distributed under the same license as the TestProject
733cca7ff6a5 Added tests for `new_catalog` distutils command.
cmlenz
parents: 117
diff changeset
316 # project.
733cca7ff6a5 Added tests for `new_catalog` distutils command.
cmlenz
parents: 117
diff changeset
317 # FIRST AUTHOR <EMAIL@ADDRESS>, 2007.
733cca7ff6a5 Added tests for `new_catalog` distutils command.
cmlenz
parents: 117
diff changeset
318 #
733cca7ff6a5 Added tests for `new_catalog` distutils command.
cmlenz
parents: 117
diff changeset
319 msgid ""
733cca7ff6a5 Added tests for `new_catalog` distutils command.
cmlenz
parents: 117
diff changeset
320 msgstr ""
733cca7ff6a5 Added tests for `new_catalog` distutils command.
cmlenz
parents: 117
diff changeset
321 "Project-Id-Version: TestProject 0.1\n"
733cca7ff6a5 Added tests for `new_catalog` distutils command.
cmlenz
parents: 117
diff changeset
322 "Report-Msgid-Bugs-To: bugs.address@email.tld\n"
733cca7ff6a5 Added tests for `new_catalog` distutils command.
cmlenz
parents: 117
diff changeset
323 "POT-Creation-Date: 2007-04-01 15:30+0200\n"
733cca7ff6a5 Added tests for `new_catalog` distutils command.
cmlenz
parents: 117
diff changeset
324 "PO-Revision-Date: %(date)s\n"
733cca7ff6a5 Added tests for `new_catalog` distutils command.
cmlenz
parents: 117
diff changeset
325 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
733cca7ff6a5 Added tests for `new_catalog` distutils command.
cmlenz
parents: 117
diff changeset
326 "Language-Team: en_US <LL@li.org>\n"
733cca7ff6a5 Added tests for `new_catalog` distutils command.
cmlenz
parents: 117
diff changeset
327 "Plural-Forms: nplurals=2; plural=(n != 1)\n"
733cca7ff6a5 Added tests for `new_catalog` distutils command.
cmlenz
parents: 117
diff changeset
328 "MIME-Version: 1.0\n"
733cca7ff6a5 Added tests for `new_catalog` distutils command.
cmlenz
parents: 117
diff changeset
329 "Content-Type: text/plain; charset=utf-8\n"
733cca7ff6a5 Added tests for `new_catalog` distutils command.
cmlenz
parents: 117
diff changeset
330 "Content-Transfer-Encoding: 8bit\n"
733cca7ff6a5 Added tests for `new_catalog` distutils command.
cmlenz
parents: 117
diff changeset
331 "Generated-By: Babel %(version)s\n"
733cca7ff6a5 Added tests for `new_catalog` distutils command.
cmlenz
parents: 117
diff changeset
332
733cca7ff6a5 Added tests for `new_catalog` distutils command.
cmlenz
parents: 117
diff changeset
333 #. This will be a translator coment,
733cca7ff6a5 Added tests for `new_catalog` distutils command.
cmlenz
parents: 117
diff changeset
334 #. that will include several lines
733cca7ff6a5 Added tests for `new_catalog` distutils command.
cmlenz
parents: 117
diff changeset
335 #: project/file1.py:8
733cca7ff6a5 Added tests for `new_catalog` distutils command.
cmlenz
parents: 117
diff changeset
336 msgid "bar"
733cca7ff6a5 Added tests for `new_catalog` distutils command.
cmlenz
parents: 117
diff changeset
337 msgstr ""
733cca7ff6a5 Added tests for `new_catalog` distutils command.
cmlenz
parents: 117
diff changeset
338
733cca7ff6a5 Added tests for `new_catalog` distutils command.
cmlenz
parents: 117
diff changeset
339 #: project/file2.py:9
733cca7ff6a5 Added tests for `new_catalog` distutils command.
cmlenz
parents: 117
diff changeset
340 msgid "foobar"
733cca7ff6a5 Added tests for `new_catalog` distutils command.
cmlenz
parents: 117
diff changeset
341 msgid_plural "foobars"
733cca7ff6a5 Added tests for `new_catalog` distutils command.
cmlenz
parents: 117
diff changeset
342 msgstr[0] ""
733cca7ff6a5 Added tests for `new_catalog` distutils command.
cmlenz
parents: 117
diff changeset
343 msgstr[1] ""
733cca7ff6a5 Added tests for `new_catalog` distutils command.
cmlenz
parents: 117
diff changeset
344
733cca7ff6a5 Added tests for `new_catalog` distutils command.
cmlenz
parents: 117
diff changeset
345 """ % {'version': VERSION,
134
60565dc8495d More fixes for Windows compatibility:
cmlenz
parents: 128
diff changeset
346 'date': format_datetime(datetime.now(LOCALTZ), 'yyyy-MM-dd HH:mmZ',
60565dc8495d More fixes for Windows compatibility:
cmlenz
parents: 128
diff changeset
347 tzinfo=LOCALTZ, locale='en')},
120
733cca7ff6a5 Added tests for `new_catalog` distutils command.
cmlenz
parents: 117
diff changeset
348 open(po_file, 'U').read())
12
a2c54ef107c2 * Removed pkg_resources/setuptools requirement from various places.
cmlenz
parents:
diff changeset
349
379
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
350 def test_keeps_catalog_non_fuzzy(self):
176
c31a7948bb8e Added tests for the `compile` command of `babel` binary and `messages_non_fuzzy.pot` to further test `read_po` fuzzy bit header parsing.
palgarvio
parents: 171
diff changeset
351 self.cmd.input_file = 'project/i18n/messages_non_fuzzy.pot'
c31a7948bb8e Added tests for the `compile` command of `babel` binary and `messages_non_fuzzy.pot` to further test `read_po` fuzzy bit header parsing.
palgarvio
parents: 171
diff changeset
352 self.cmd.locale = 'en_US'
c31a7948bb8e Added tests for the `compile` command of `babel` binary and `messages_non_fuzzy.pot` to further test `read_po` fuzzy bit header parsing.
palgarvio
parents: 171
diff changeset
353 self.cmd.output_dir = 'project/i18n'
c31a7948bb8e Added tests for the `compile` command of `babel` binary and `messages_non_fuzzy.pot` to further test `read_po` fuzzy bit header parsing.
palgarvio
parents: 171
diff changeset
354
c31a7948bb8e Added tests for the `compile` command of `babel` binary and `messages_non_fuzzy.pot` to further test `read_po` fuzzy bit header parsing.
palgarvio
parents: 171
diff changeset
355 self.cmd.finalize_options()
c31a7948bb8e Added tests for the `compile` command of `babel` binary and `messages_non_fuzzy.pot` to further test `read_po` fuzzy bit header parsing.
palgarvio
parents: 171
diff changeset
356 self.cmd.run()
c31a7948bb8e Added tests for the `compile` command of `babel` binary and `messages_non_fuzzy.pot` to further test `read_po` fuzzy bit header parsing.
palgarvio
parents: 171
diff changeset
357
c31a7948bb8e Added tests for the `compile` command of `babel` binary and `messages_non_fuzzy.pot` to further test `read_po` fuzzy bit header parsing.
palgarvio
parents: 171
diff changeset
358 po_file = os.path.join(self.datadir, 'project', 'i18n', 'en_US',
c31a7948bb8e Added tests for the `compile` command of `babel` binary and `messages_non_fuzzy.pot` to further test `read_po` fuzzy bit header parsing.
palgarvio
parents: 171
diff changeset
359 'LC_MESSAGES', 'messages.po')
c31a7948bb8e Added tests for the `compile` command of `babel` binary and `messages_non_fuzzy.pot` to further test `read_po` fuzzy bit header parsing.
palgarvio
parents: 171
diff changeset
360 assert os.path.isfile(po_file)
c31a7948bb8e Added tests for the `compile` command of `babel` binary and `messages_non_fuzzy.pot` to further test `read_po` fuzzy bit header parsing.
palgarvio
parents: 171
diff changeset
361
c31a7948bb8e Added tests for the `compile` command of `babel` binary and `messages_non_fuzzy.pot` to further test `read_po` fuzzy bit header parsing.
palgarvio
parents: 171
diff changeset
362 self.assertEqual(
c31a7948bb8e Added tests for the `compile` command of `babel` binary and `messages_non_fuzzy.pot` to further test `read_po` fuzzy bit header parsing.
palgarvio
parents: 171
diff changeset
363 r"""# English (United States) translations for TestProject.
c31a7948bb8e Added tests for the `compile` command of `babel` binary and `messages_non_fuzzy.pot` to further test `read_po` fuzzy bit header parsing.
palgarvio
parents: 171
diff changeset
364 # Copyright (C) 2007 FooBar, Inc.
c31a7948bb8e Added tests for the `compile` command of `babel` binary and `messages_non_fuzzy.pot` to further test `read_po` fuzzy bit header parsing.
palgarvio
parents: 171
diff changeset
365 # This file is distributed under the same license as the TestProject
c31a7948bb8e Added tests for the `compile` command of `babel` binary and `messages_non_fuzzy.pot` to further test `read_po` fuzzy bit header parsing.
palgarvio
parents: 171
diff changeset
366 # project.
c31a7948bb8e Added tests for the `compile` command of `babel` binary and `messages_non_fuzzy.pot` to further test `read_po` fuzzy bit header parsing.
palgarvio
parents: 171
diff changeset
367 # FIRST AUTHOR <EMAIL@ADDRESS>, 2007.
c31a7948bb8e Added tests for the `compile` command of `babel` binary and `messages_non_fuzzy.pot` to further test `read_po` fuzzy bit header parsing.
palgarvio
parents: 171
diff changeset
368 #
c31a7948bb8e Added tests for the `compile` command of `babel` binary and `messages_non_fuzzy.pot` to further test `read_po` fuzzy bit header parsing.
palgarvio
parents: 171
diff changeset
369 msgid ""
c31a7948bb8e Added tests for the `compile` command of `babel` binary and `messages_non_fuzzy.pot` to further test `read_po` fuzzy bit header parsing.
palgarvio
parents: 171
diff changeset
370 msgstr ""
c31a7948bb8e Added tests for the `compile` command of `babel` binary and `messages_non_fuzzy.pot` to further test `read_po` fuzzy bit header parsing.
palgarvio
parents: 171
diff changeset
371 "Project-Id-Version: TestProject 0.1\n"
c31a7948bb8e Added tests for the `compile` command of `babel` binary and `messages_non_fuzzy.pot` to further test `read_po` fuzzy bit header parsing.
palgarvio
parents: 171
diff changeset
372 "Report-Msgid-Bugs-To: bugs.address@email.tld\n"
c31a7948bb8e Added tests for the `compile` command of `babel` binary and `messages_non_fuzzy.pot` to further test `read_po` fuzzy bit header parsing.
palgarvio
parents: 171
diff changeset
373 "POT-Creation-Date: 2007-04-01 15:30+0200\n"
c31a7948bb8e Added tests for the `compile` command of `babel` binary and `messages_non_fuzzy.pot` to further test `read_po` fuzzy bit header parsing.
palgarvio
parents: 171
diff changeset
374 "PO-Revision-Date: %(date)s\n"
c31a7948bb8e Added tests for the `compile` command of `babel` binary and `messages_non_fuzzy.pot` to further test `read_po` fuzzy bit header parsing.
palgarvio
parents: 171
diff changeset
375 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
c31a7948bb8e Added tests for the `compile` command of `babel` binary and `messages_non_fuzzy.pot` to further test `read_po` fuzzy bit header parsing.
palgarvio
parents: 171
diff changeset
376 "Language-Team: en_US <LL@li.org>\n"
c31a7948bb8e Added tests for the `compile` command of `babel` binary and `messages_non_fuzzy.pot` to further test `read_po` fuzzy bit header parsing.
palgarvio
parents: 171
diff changeset
377 "Plural-Forms: nplurals=2; plural=(n != 1)\n"
c31a7948bb8e Added tests for the `compile` command of `babel` binary and `messages_non_fuzzy.pot` to further test `read_po` fuzzy bit header parsing.
palgarvio
parents: 171
diff changeset
378 "MIME-Version: 1.0\n"
c31a7948bb8e Added tests for the `compile` command of `babel` binary and `messages_non_fuzzy.pot` to further test `read_po` fuzzy bit header parsing.
palgarvio
parents: 171
diff changeset
379 "Content-Type: text/plain; charset=utf-8\n"
c31a7948bb8e Added tests for the `compile` command of `babel` binary and `messages_non_fuzzy.pot` to further test `read_po` fuzzy bit header parsing.
palgarvio
parents: 171
diff changeset
380 "Content-Transfer-Encoding: 8bit\n"
c31a7948bb8e Added tests for the `compile` command of `babel` binary and `messages_non_fuzzy.pot` to further test `read_po` fuzzy bit header parsing.
palgarvio
parents: 171
diff changeset
381 "Generated-By: Babel %(version)s\n"
c31a7948bb8e Added tests for the `compile` command of `babel` binary and `messages_non_fuzzy.pot` to further test `read_po` fuzzy bit header parsing.
palgarvio
parents: 171
diff changeset
382
c31a7948bb8e Added tests for the `compile` command of `babel` binary and `messages_non_fuzzy.pot` to further test `read_po` fuzzy bit header parsing.
palgarvio
parents: 171
diff changeset
383 #. This will be a translator coment,
c31a7948bb8e Added tests for the `compile` command of `babel` binary and `messages_non_fuzzy.pot` to further test `read_po` fuzzy bit header parsing.
palgarvio
parents: 171
diff changeset
384 #. that will include several lines
c31a7948bb8e Added tests for the `compile` command of `babel` binary and `messages_non_fuzzy.pot` to further test `read_po` fuzzy bit header parsing.
palgarvio
parents: 171
diff changeset
385 #: project/file1.py:8
c31a7948bb8e Added tests for the `compile` command of `babel` binary and `messages_non_fuzzy.pot` to further test `read_po` fuzzy bit header parsing.
palgarvio
parents: 171
diff changeset
386 msgid "bar"
c31a7948bb8e Added tests for the `compile` command of `babel` binary and `messages_non_fuzzy.pot` to further test `read_po` fuzzy bit header parsing.
palgarvio
parents: 171
diff changeset
387 msgstr ""
c31a7948bb8e Added tests for the `compile` command of `babel` binary and `messages_non_fuzzy.pot` to further test `read_po` fuzzy bit header parsing.
palgarvio
parents: 171
diff changeset
388
c31a7948bb8e Added tests for the `compile` command of `babel` binary and `messages_non_fuzzy.pot` to further test `read_po` fuzzy bit header parsing.
palgarvio
parents: 171
diff changeset
389 #: project/file2.py:9
c31a7948bb8e Added tests for the `compile` command of `babel` binary and `messages_non_fuzzy.pot` to further test `read_po` fuzzy bit header parsing.
palgarvio
parents: 171
diff changeset
390 msgid "foobar"
c31a7948bb8e Added tests for the `compile` command of `babel` binary and `messages_non_fuzzy.pot` to further test `read_po` fuzzy bit header parsing.
palgarvio
parents: 171
diff changeset
391 msgid_plural "foobars"
c31a7948bb8e Added tests for the `compile` command of `babel` binary and `messages_non_fuzzy.pot` to further test `read_po` fuzzy bit header parsing.
palgarvio
parents: 171
diff changeset
392 msgstr[0] ""
c31a7948bb8e Added tests for the `compile` command of `babel` binary and `messages_non_fuzzy.pot` to further test `read_po` fuzzy bit header parsing.
palgarvio
parents: 171
diff changeset
393 msgstr[1] ""
c31a7948bb8e Added tests for the `compile` command of `babel` binary and `messages_non_fuzzy.pot` to further test `read_po` fuzzy bit header parsing.
palgarvio
parents: 171
diff changeset
394
c31a7948bb8e Added tests for the `compile` command of `babel` binary and `messages_non_fuzzy.pot` to further test `read_po` fuzzy bit header parsing.
palgarvio
parents: 171
diff changeset
395 """ % {'version': VERSION,
c31a7948bb8e Added tests for the `compile` command of `babel` binary and `messages_non_fuzzy.pot` to further test `read_po` fuzzy bit header parsing.
palgarvio
parents: 171
diff changeset
396 'date': format_datetime(datetime.now(LOCALTZ), 'yyyy-MM-dd HH:mmZ',
c31a7948bb8e Added tests for the `compile` command of `babel` binary and `messages_non_fuzzy.pot` to further test `read_po` fuzzy bit header parsing.
palgarvio
parents: 171
diff changeset
397 tzinfo=LOCALTZ, locale='en')},
c31a7948bb8e Added tests for the `compile` command of `babel` binary and `messages_non_fuzzy.pot` to further test `read_po` fuzzy bit header parsing.
palgarvio
parents: 171
diff changeset
398 open(po_file, 'U').read())
115
9703a0ad56bd Added new logo.
cmlenz
parents: 114
diff changeset
399
379
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
400 def test_correct_init_more_than_2_plurals(self):
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
401 self.cmd.input_file = 'project/i18n/messages.pot'
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
402 self.cmd.locale = 'lv_LV'
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
403 self.cmd.output_dir = 'project/i18n'
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
404
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
405 self.cmd.finalize_options()
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
406 self.cmd.run()
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
407
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
408 po_file = os.path.join(self.datadir, 'project', 'i18n', 'lv_LV',
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
409 'LC_MESSAGES', 'messages.po')
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
410 assert os.path.isfile(po_file)
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
411
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
412 self.assertEqual(
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
413 r"""# Latvian (Latvia) translations for TestProject.
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
414 # Copyright (C) 2007 FooBar, Inc.
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
415 # This file is distributed under the same license as the TestProject
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
416 # project.
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
417 # FIRST AUTHOR <EMAIL@ADDRESS>, 2007.
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
418 #
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
419 msgid ""
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
420 msgstr ""
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
421 "Project-Id-Version: TestProject 0.1\n"
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
422 "Report-Msgid-Bugs-To: bugs.address@email.tld\n"
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
423 "POT-Creation-Date: 2007-04-01 15:30+0200\n"
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
424 "PO-Revision-Date: %(date)s\n"
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
425 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
426 "Language-Team: lv_LV <LL@li.org>\n"
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
427 "Plural-Forms: nplurals=3; plural=(n%%10==1 && n%%100!=11 ? 0 : n != 0 ? 1 :"
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
428 " 2)\n"
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
429 "MIME-Version: 1.0\n"
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
430 "Content-Type: text/plain; charset=utf-8\n"
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
431 "Content-Transfer-Encoding: 8bit\n"
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
432 "Generated-By: Babel %(version)s\n"
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
433
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
434 #. This will be a translator coment,
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
435 #. that will include several lines
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
436 #: project/file1.py:8
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
437 msgid "bar"
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
438 msgstr ""
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
439
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
440 #: project/file2.py:9
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
441 msgid "foobar"
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
442 msgid_plural "foobars"
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
443 msgstr[0] ""
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
444 msgstr[1] ""
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
445 msgstr[2] ""
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
446
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
447 """ % {'version': VERSION,
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
448 'date': format_datetime(datetime.now(LOCALTZ), 'yyyy-MM-dd HH:mmZ',
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
449 tzinfo=LOCALTZ, locale='en')},
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
450 open(po_file, 'U').read())
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
451
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
452 def test_correct_init_singular_plural_forms(self):
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
453 self.cmd.input_file = 'project/i18n/messages.pot'
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
454 self.cmd.locale = 'ja_JP'
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
455 self.cmd.output_dir = 'project/i18n'
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
456
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
457 self.cmd.finalize_options()
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
458 self.cmd.run()
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
459
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
460 po_file = os.path.join(self.datadir, 'project', 'i18n', 'ja_JP',
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
461 'LC_MESSAGES', 'messages.po')
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
462 assert os.path.isfile(po_file)
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
463
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
464 self.assertEqual(
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
465 r"""# Japanese (Japan) translations for TestProject.
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
466 # Copyright (C) 2007 FooBar, Inc.
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
467 # This file is distributed under the same license as the TestProject
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
468 # project.
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
469 # FIRST AUTHOR <EMAIL@ADDRESS>, 2007.
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
470 #
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
471 msgid ""
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
472 msgstr ""
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
473 "Project-Id-Version: TestProject 0.1\n"
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
474 "Report-Msgid-Bugs-To: bugs.address@email.tld\n"
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
475 "POT-Creation-Date: 2007-04-01 15:30+0200\n"
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
476 "PO-Revision-Date: %(date)s\n"
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
477 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
478 "Language-Team: ja_JP <LL@li.org>\n"
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
479 "Plural-Forms: nplurals=1; plural=0\n"
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
480 "MIME-Version: 1.0\n"
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
481 "Content-Type: text/plain; charset=utf-8\n"
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
482 "Content-Transfer-Encoding: 8bit\n"
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
483 "Generated-By: Babel %(version)s\n"
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
484
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
485 #. This will be a translator coment,
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
486 #. that will include several lines
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
487 #: project/file1.py:8
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
488 msgid "bar"
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
489 msgstr ""
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
490
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
491 #: project/file2.py:9
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
492 msgid "foobar"
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
493 msgid_plural "foobars"
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
494 msgstr[0] ""
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
495
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
496 """ % {'version': VERSION,
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
497 'date': format_datetime(datetime.now(LOCALTZ), 'yyyy-MM-dd HH:mmZ',
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
498 tzinfo=LOCALTZ, locale='ja_JP')},
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
499 open(po_file, 'U').read())
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
500
181
9a1acb41e7dd The frontends now provide ways to update existing translations catalogs from a template. Closes #22.
cmlenz
parents: 177
diff changeset
501
127
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
502 class CommandLineInterfaceTestCase(unittest.TestCase):
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
503
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
504 def setUp(self):
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
505 self.datadir = os.path.join(os.path.dirname(__file__), 'data')
128
7b807415c3ff Fake `sys.argv` for CLI tests.
cmlenz
parents: 127
diff changeset
506 self.orig_argv = sys.argv
127
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
507 self.orig_stdout = sys.stdout
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
508 self.orig_stderr = sys.stderr
232
0e5c33776833 Use logging module for output from CLI frontend.
cmlenz
parents: 185
diff changeset
509 sys.argv = ['pybabel']
127
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
510 sys.stdout = StringIO()
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
511 sys.stderr = StringIO()
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
512 self.cli = frontend.CommandLineInterface()
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
513
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
514 def tearDown(self):
128
7b807415c3ff Fake `sys.argv` for CLI tests.
cmlenz
parents: 127
diff changeset
515 sys.argv = self.orig_argv
127
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
516 sys.stdout = self.orig_stdout
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
517 sys.stderr = self.orig_stderr
379
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
518 for dirname in ['lv_LV', 'ja_JP']:
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
519 locale_dir = os.path.join(self.datadir, 'project', 'i18n', dirname)
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
520 if os.path.isdir(locale_dir):
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
521 shutil.rmtree(locale_dir)
127
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
522
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
523 def test_usage(self):
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
524 try:
128
7b807415c3ff Fake `sys.argv` for CLI tests.
cmlenz
parents: 127
diff changeset
525 self.cli.run(sys.argv)
127
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
526 self.fail('Expected SystemExit')
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
527 except SystemExit, e:
508
dbb70d75718a Fix Python 2.3 compatibility for 0.9 branch (closes #233)
fschwarz
parents: 474
diff changeset
528 stderr = sys.stderr.getvalue()
dbb70d75718a Fix Python 2.3 compatibility for 0.9 branch (closes #233)
fschwarz
parents: 474
diff changeset
529 if isinstance(e.code, int):
dbb70d75718a Fix Python 2.3 compatibility for 0.9 branch (closes #233)
fschwarz
parents: 474
diff changeset
530 self.assertEqual(2, e.code)
dbb70d75718a Fix Python 2.3 compatibility for 0.9 branch (closes #233)
fschwarz
parents: 474
diff changeset
531 else:
dbb70d75718a Fix Python 2.3 compatibility for 0.9 branch (closes #233)
fschwarz
parents: 474
diff changeset
532 # OptionParser in Python 2.3 does not set the exit code.
dbb70d75718a Fix Python 2.3 compatibility for 0.9 branch (closes #233)
fschwarz
parents: 474
diff changeset
533 # Instead the 'code' contains the custom error message from the
dbb70d75718a Fix Python 2.3 compatibility for 0.9 branch (closes #233)
fschwarz
parents: 474
diff changeset
534 # frontend
dbb70d75718a Fix Python 2.3 compatibility for 0.9 branch (closes #233)
fschwarz
parents: 474
diff changeset
535 stderr = stderr + e.code + '\n'
127
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
536 self.assertEqual("""\
232
0e5c33776833 Use logging module for output from CLI frontend.
cmlenz
parents: 185
diff changeset
537 usage: pybabel command [options] [args]
127
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
538
474
ee0b9aa340df Merged revisions 466 via svnmerge from
jruigrok
parents: 459
diff changeset
539 pybabel: error: no valid command or option passed. try the -h/--help option for more information.
508
dbb70d75718a Fix Python 2.3 compatibility for 0.9 branch (closes #233)
fschwarz
parents: 474
diff changeset
540 """, stderr.lower())
127
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
541
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
542 def test_help(self):
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
543 try:
128
7b807415c3ff Fake `sys.argv` for CLI tests.
cmlenz
parents: 127
diff changeset
544 self.cli.run(sys.argv + ['--help'])
127
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
545 self.fail('Expected SystemExit')
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
546 except SystemExit, e:
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
547 self.assertEqual(0, e.code)
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
548 self.assertEqual("""\
232
0e5c33776833 Use logging module for output from CLI frontend.
cmlenz
parents: 185
diff changeset
549 usage: pybabel command [options] [args]
127
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
550
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
551 options:
185
170cffc66554 Add a command-line option that prints out all available locales. Closes #24.
cmlenz
parents: 181
diff changeset
552 --version show program's version number and exit
170cffc66554 Add a command-line option that prints out all available locales. Closes #24.
cmlenz
parents: 181
diff changeset
553 -h, --help show this help message and exit
170cffc66554 Add a command-line option that prints out all available locales. Closes #24.
cmlenz
parents: 181
diff changeset
554 --list-locales print all known locales and exit
232
0e5c33776833 Use logging module for output from CLI frontend.
cmlenz
parents: 185
diff changeset
555 -v, --verbose print as much as possible
0e5c33776833 Use logging module for output from CLI frontend.
cmlenz
parents: 185
diff changeset
556 -q, --quiet print as little as possible
127
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
557
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
558 commands:
185
170cffc66554 Add a command-line option that prints out all available locales. Closes #24.
cmlenz
parents: 181
diff changeset
559 compile compile message catalogs to mo files
170cffc66554 Add a command-line option that prints out all available locales. Closes #24.
cmlenz
parents: 181
diff changeset
560 extract extract messages from source files and generate a pot file
170cffc66554 Add a command-line option that prints out all available locales. Closes #24.
cmlenz
parents: 181
diff changeset
561 init create new message catalogs from a pot file
170cffc66554 Add a command-line option that prints out all available locales. Closes #24.
cmlenz
parents: 181
diff changeset
562 update update existing message catalogs from a pot file
135
f22177653f86 Fix frontend tests on Python 2.5, where the case of some of the output of optparse usage has changed.
cmlenz
parents: 134
diff changeset
563 """, sys.stdout.getvalue().lower())
127
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
564
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
565 def test_extract_with_default_mapping(self):
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
566 pot_file = os.path.join(self.datadir, 'project', 'i18n', 'temp.pot')
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
567 try:
128
7b807415c3ff Fake `sys.argv` for CLI tests.
cmlenz
parents: 127
diff changeset
568 self.cli.run(sys.argv + ['extract',
127
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
569 '--copyright-holder', 'FooBar, Inc.',
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
570 '--msgid-bugs-address', 'bugs.address@email.tld',
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
571 '-c', 'TRANSLATOR', '-c', 'TRANSLATORS:',
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
572 '-o', pot_file, os.path.join(self.datadir, 'project')])
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
573 except SystemExit, e:
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
574 self.assertEqual(0, e.code)
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
575 assert os.path.isfile(pot_file)
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
576 self.assertEqual(
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
577 r"""# Translations template for TestProject.
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
578 # Copyright (C) %(year)s FooBar, Inc.
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
579 # This file is distributed under the same license as the TestProject
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
580 # project.
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
581 # FIRST AUTHOR <EMAIL@ADDRESS>, %(year)s.
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
582 #
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
583 #, fuzzy
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
584 msgid ""
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
585 msgstr ""
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
586 "Project-Id-Version: TestProject 0.1\n"
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
587 "Report-Msgid-Bugs-To: bugs.address@email.tld\n"
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
588 "POT-Creation-Date: %(date)s\n"
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
589 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
590 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
591 "Language-Team: LANGUAGE <LL@li.org>\n"
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
592 "MIME-Version: 1.0\n"
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
593 "Content-Type: text/plain; charset=utf-8\n"
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
594 "Content-Transfer-Encoding: 8bit\n"
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
595 "Generated-By: Babel %(version)s\n"
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
596
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
597 #. This will be a translator coment,
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
598 #. that will include several lines
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
599 #: project/file1.py:8
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
600 msgid "bar"
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
601 msgstr ""
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
602
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
603 #: project/file2.py:9
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
604 msgid "foobar"
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
605 msgid_plural "foobars"
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
606 msgstr[0] ""
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
607 msgstr[1] ""
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
608
459
d176eb70f4f9 Ported r505 to 0.9.x stable branch.
cmlenz
parents: 379
diff changeset
609 #: project/ignored/this_wont_normally_be_here.py:11
127
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
610 msgid "FooBar"
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
611 msgid_plural "FooBars"
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
612 msgstr[0] ""
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
613 msgstr[1] ""
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
614
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
615 """ % {'version': VERSION,
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
616 'year': time.strftime('%Y'),
134
60565dc8495d More fixes for Windows compatibility:
cmlenz
parents: 128
diff changeset
617 'date': format_datetime(datetime.now(LOCALTZ), 'yyyy-MM-dd HH:mmZ',
60565dc8495d More fixes for Windows compatibility:
cmlenz
parents: 128
diff changeset
618 tzinfo=LOCALTZ, locale='en')},
60565dc8495d More fixes for Windows compatibility:
cmlenz
parents: 128
diff changeset
619 open(pot_file, 'U').read())
127
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
620
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
621 def test_extract_with_mapping_file(self):
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
622 pot_file = os.path.join(self.datadir, 'project', 'i18n', 'temp.pot')
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
623 try:
128
7b807415c3ff Fake `sys.argv` for CLI tests.
cmlenz
parents: 127
diff changeset
624 self.cli.run(sys.argv + ['extract',
127
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
625 '--copyright-holder', 'FooBar, Inc.',
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
626 '--msgid-bugs-address', 'bugs.address@email.tld',
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
627 '--mapping', os.path.join(self.datadir, 'mapping.cfg'),
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
628 '-c', 'TRANSLATOR', '-c', 'TRANSLATORS:',
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
629 '-o', pot_file, os.path.join(self.datadir, 'project')])
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
630 except SystemExit, e:
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
631 self.assertEqual(0, e.code)
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
632 assert os.path.isfile(pot_file)
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
633 self.assertEqual(
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
634 r"""# Translations template for TestProject.
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
635 # Copyright (C) %(year)s FooBar, Inc.
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
636 # This file is distributed under the same license as the TestProject
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
637 # project.
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
638 # FIRST AUTHOR <EMAIL@ADDRESS>, %(year)s.
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
639 #
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
640 #, fuzzy
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
641 msgid ""
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
642 msgstr ""
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
643 "Project-Id-Version: TestProject 0.1\n"
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
644 "Report-Msgid-Bugs-To: bugs.address@email.tld\n"
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
645 "POT-Creation-Date: %(date)s\n"
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
646 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
647 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
648 "Language-Team: LANGUAGE <LL@li.org>\n"
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
649 "MIME-Version: 1.0\n"
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
650 "Content-Type: text/plain; charset=utf-8\n"
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
651 "Content-Transfer-Encoding: 8bit\n"
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
652 "Generated-By: Babel %(version)s\n"
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
653
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
654 #. This will be a translator coment,
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
655 #. that will include several lines
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
656 #: project/file1.py:8
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
657 msgid "bar"
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
658 msgstr ""
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
659
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
660 #: project/file2.py:9
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
661 msgid "foobar"
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
662 msgid_plural "foobars"
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
663 msgstr[0] ""
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
664 msgstr[1] ""
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
665
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
666 """ % {'version': VERSION,
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
667 'year': time.strftime('%Y'),
134
60565dc8495d More fixes for Windows compatibility:
cmlenz
parents: 128
diff changeset
668 'date': format_datetime(datetime.now(LOCALTZ), 'yyyy-MM-dd HH:mmZ',
60565dc8495d More fixes for Windows compatibility:
cmlenz
parents: 128
diff changeset
669 tzinfo=LOCALTZ, locale='en')},
60565dc8495d More fixes for Windows compatibility:
cmlenz
parents: 128
diff changeset
670 open(pot_file, 'U').read())
127
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
671
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
672 def test_init_with_output_dir(self):
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
673 po_file = os.path.join(self.datadir, 'project', 'i18n', 'en_US',
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
674 'LC_MESSAGES', 'messages.po')
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
675 try:
128
7b807415c3ff Fake `sys.argv` for CLI tests.
cmlenz
parents: 127
diff changeset
676 self.cli.run(sys.argv + ['init',
127
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
677 '--locale', 'en_US',
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
678 '-d', os.path.join(self.datadir, 'project', 'i18n'),
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
679 '-i', os.path.join(self.datadir, 'project', 'i18n',
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
680 'messages.pot')])
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
681 except SystemExit, e:
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
682 self.assertEqual(0, e.code)
171
0628c0450e62 pot_file is a typo here
pjenvey
parents: 160
diff changeset
683 assert os.path.isfile(po_file)
127
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
684 self.assertEqual(
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
685 r"""# English (United States) translations for TestProject.
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
686 # Copyright (C) 2007 FooBar, Inc.
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
687 # This file is distributed under the same license as the TestProject
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
688 # project.
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
689 # FIRST AUTHOR <EMAIL@ADDRESS>, 2007.
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
690 #
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
691 #, fuzzy
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
692 msgid ""
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
693 msgstr ""
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
694 "Project-Id-Version: TestProject 0.1\n"
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
695 "Report-Msgid-Bugs-To: bugs.address@email.tld\n"
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
696 "POT-Creation-Date: 2007-04-01 15:30+0200\n"
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
697 "PO-Revision-Date: %(date)s\n"
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
698 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
699 "Language-Team: en_US <LL@li.org>\n"
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
700 "Plural-Forms: nplurals=2; plural=(n != 1)\n"
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
701 "MIME-Version: 1.0\n"
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
702 "Content-Type: text/plain; charset=utf-8\n"
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
703 "Content-Transfer-Encoding: 8bit\n"
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
704 "Generated-By: Babel %(version)s\n"
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
705
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
706 #. This will be a translator coment,
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
707 #. that will include several lines
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
708 #: project/file1.py:8
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
709 msgid "bar"
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
710 msgstr ""
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
711
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
712 #: project/file2.py:9
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
713 msgid "foobar"
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
714 msgid_plural "foobars"
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
715 msgstr[0] ""
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
716 msgstr[1] ""
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
717
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
718 """ % {'version': VERSION,
134
60565dc8495d More fixes for Windows compatibility:
cmlenz
parents: 128
diff changeset
719 'date': format_datetime(datetime.now(LOCALTZ), 'yyyy-MM-dd HH:mmZ',
60565dc8495d More fixes for Windows compatibility:
cmlenz
parents: 128
diff changeset
720 tzinfo=LOCALTZ, locale='en')},
127
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
721 open(po_file, 'U').read())
379
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
722
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
723 def test_init_singular_plural_forms(self):
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
724 po_file = os.path.join(self.datadir, 'project', 'i18n', 'ja_JP',
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
725 'LC_MESSAGES', 'messages.po')
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
726 try:
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
727 self.cli.run(sys.argv + ['init',
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
728 '--locale', 'ja_JP',
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
729 '-d', os.path.join(self.datadir, 'project', 'i18n'),
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
730 '-i', os.path.join(self.datadir, 'project', 'i18n',
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
731 'messages.pot')])
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
732 except SystemExit, e:
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
733 self.assertEqual(0, e.code)
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
734 assert os.path.isfile(po_file)
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
735 self.assertEqual(
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
736 r"""# Japanese (Japan) translations for TestProject.
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
737 # Copyright (C) 2007 FooBar, Inc.
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
738 # This file is distributed under the same license as the TestProject
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
739 # project.
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
740 # FIRST AUTHOR <EMAIL@ADDRESS>, 2007.
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
741 #
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
742 #, fuzzy
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
743 msgid ""
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
744 msgstr ""
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
745 "Project-Id-Version: TestProject 0.1\n"
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
746 "Report-Msgid-Bugs-To: bugs.address@email.tld\n"
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
747 "POT-Creation-Date: 2007-04-01 15:30+0200\n"
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
748 "PO-Revision-Date: %(date)s\n"
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
749 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
750 "Language-Team: ja_JP <LL@li.org>\n"
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
751 "Plural-Forms: nplurals=1; plural=0\n"
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
752 "MIME-Version: 1.0\n"
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
753 "Content-Type: text/plain; charset=utf-8\n"
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
754 "Content-Transfer-Encoding: 8bit\n"
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
755 "Generated-By: Babel %(version)s\n"
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
756
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
757 #. This will be a translator coment,
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
758 #. that will include several lines
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
759 #: project/file1.py:8
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
760 msgid "bar"
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
761 msgstr ""
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
762
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
763 #: project/file2.py:9
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
764 msgid "foobar"
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
765 msgid_plural "foobars"
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
766 msgstr[0] ""
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
767
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
768 """ % {'version': VERSION,
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
769 'date': format_datetime(datetime.now(LOCALTZ), 'yyyy-MM-dd HH:mmZ',
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
770 tzinfo=LOCALTZ, locale='en')},
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
771 open(po_file, 'U').read())
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
772
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
773 def test_init_more_than_2_plural_forms(self):
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
774 po_file = os.path.join(self.datadir, 'project', 'i18n', 'lv_LV',
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
775 'LC_MESSAGES', 'messages.po')
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
776 try:
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
777 self.cli.run(sys.argv + ['init',
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
778 '--locale', 'lv_LV',
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
779 '-d', os.path.join(self.datadir, 'project', 'i18n'),
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
780 '-i', os.path.join(self.datadir, 'project', 'i18n',
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
781 'messages.pot')])
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
782 except SystemExit, e:
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
783 self.assertEqual(0, e.code)
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
784 assert os.path.isfile(po_file)
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
785 self.assertEqual(
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
786 r"""# Latvian (Latvia) translations for TestProject.
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
787 # Copyright (C) 2007 FooBar, Inc.
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
788 # This file is distributed under the same license as the TestProject
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
789 # project.
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
790 # FIRST AUTHOR <EMAIL@ADDRESS>, 2007.
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
791 #
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
792 #, fuzzy
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
793 msgid ""
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
794 msgstr ""
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
795 "Project-Id-Version: TestProject 0.1\n"
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
796 "Report-Msgid-Bugs-To: bugs.address@email.tld\n"
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
797 "POT-Creation-Date: 2007-04-01 15:30+0200\n"
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
798 "PO-Revision-Date: %(date)s\n"
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
799 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
800 "Language-Team: lv_LV <LL@li.org>\n"
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
801 "Plural-Forms: nplurals=3; plural=(n%%10==1 && n%%100!=11 ? 0 : n != 0 ? 1 :"
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
802 " 2)\n"
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
803 "MIME-Version: 1.0\n"
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
804 "Content-Type: text/plain; charset=utf-8\n"
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
805 "Content-Transfer-Encoding: 8bit\n"
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
806 "Generated-By: Babel %(version)s\n"
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
807
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
808 #. This will be a translator coment,
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
809 #. that will include several lines
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
810 #: project/file1.py:8
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
811 msgid "bar"
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
812 msgstr ""
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
813
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
814 #: project/file2.py:9
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
815 msgid "foobar"
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
816 msgid_plural "foobars"
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
817 msgstr[0] ""
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
818 msgstr[1] ""
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
819 msgstr[2] ""
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
820
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
821 """ % {'version': VERSION,
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
822 'date': format_datetime(datetime.now(LOCALTZ), 'yyyy-MM-dd HH:mmZ',
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
823 tzinfo=LOCALTZ, locale='en')},
1c0915da48c6 Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 346
diff changeset
824 open(po_file, 'U').read())
177
a7766f92f944 * Instead of an extra `compile-all` option on the `compile` (or `compile_catalog`) command, compilation of all catalogs is performed when neither an `input_file` nor a `locale` is specified.
cmlenz
parents: 176
diff changeset
825
176
c31a7948bb8e Added tests for the `compile` command of `babel` binary and `messages_non_fuzzy.pot` to further test `read_po` fuzzy bit header parsing.
palgarvio
parents: 171
diff changeset
826 def test_compile_catalog(self):
232
0e5c33776833 Use logging module for output from CLI frontend.
cmlenz
parents: 185
diff changeset
827 po_file = os.path.join(self.datadir, 'project', 'i18n', 'de_DE',
176
c31a7948bb8e Added tests for the `compile` command of `babel` binary and `messages_non_fuzzy.pot` to further test `read_po` fuzzy bit header parsing.
palgarvio
parents: 171
diff changeset
828 'LC_MESSAGES', 'messages.po')
232
0e5c33776833 Use logging module for output from CLI frontend.
cmlenz
parents: 185
diff changeset
829 mo_file = po_file.replace('.po', '.mo')
0e5c33776833 Use logging module for output from CLI frontend.
cmlenz
parents: 185
diff changeset
830 self.cli.run(sys.argv + ['compile',
0e5c33776833 Use logging module for output from CLI frontend.
cmlenz
parents: 185
diff changeset
831 '--locale', 'de_DE',
0e5c33776833 Use logging module for output from CLI frontend.
cmlenz
parents: 185
diff changeset
832 '-d', os.path.join(self.datadir, 'project', 'i18n')])
0e5c33776833 Use logging module for output from CLI frontend.
cmlenz
parents: 185
diff changeset
833 assert not os.path.isfile(mo_file), 'Expected no file at %r' % mo_file
0e5c33776833 Use logging module for output from CLI frontend.
cmlenz
parents: 185
diff changeset
834 self.assertEqual("""\
0e5c33776833 Use logging module for output from CLI frontend.
cmlenz
parents: 185
diff changeset
835 catalog %r is marked as fuzzy, skipping
0e5c33776833 Use logging module for output from CLI frontend.
cmlenz
parents: 185
diff changeset
836 """ % (po_file), sys.stderr.getvalue())
0e5c33776833 Use logging module for output from CLI frontend.
cmlenz
parents: 185
diff changeset
837
0e5c33776833 Use logging module for output from CLI frontend.
cmlenz
parents: 185
diff changeset
838 def test_compile_fuzzy_catalog(self):
0e5c33776833 Use logging module for output from CLI frontend.
cmlenz
parents: 185
diff changeset
839 po_file = os.path.join(self.datadir, 'project', 'i18n', 'de_DE',
0e5c33776833 Use logging module for output from CLI frontend.
cmlenz
parents: 185
diff changeset
840 'LC_MESSAGES', 'messages.po')
0e5c33776833 Use logging module for output from CLI frontend.
cmlenz
parents: 185
diff changeset
841 mo_file = po_file.replace('.po', '.mo')
176
c31a7948bb8e Added tests for the `compile` command of `babel` binary and `messages_non_fuzzy.pot` to further test `read_po` fuzzy bit header parsing.
palgarvio
parents: 171
diff changeset
842 try:
c31a7948bb8e Added tests for the `compile` command of `babel` binary and `messages_non_fuzzy.pot` to further test `read_po` fuzzy bit header parsing.
palgarvio
parents: 171
diff changeset
843 self.cli.run(sys.argv + ['compile',
232
0e5c33776833 Use logging module for output from CLI frontend.
cmlenz
parents: 185
diff changeset
844 '--locale', 'de_DE', '--use-fuzzy',
176
c31a7948bb8e Added tests for the `compile` command of `babel` binary and `messages_non_fuzzy.pot` to further test `read_po` fuzzy bit header parsing.
palgarvio
parents: 171
diff changeset
845 '-d', os.path.join(self.datadir, 'project', 'i18n')])
232
0e5c33776833 Use logging module for output from CLI frontend.
cmlenz
parents: 185
diff changeset
846 assert os.path.isfile(mo_file)
176
c31a7948bb8e Added tests for the `compile` command of `babel` binary and `messages_non_fuzzy.pot` to further test `read_po` fuzzy bit header parsing.
palgarvio
parents: 171
diff changeset
847 self.assertEqual("""\
177
a7766f92f944 * Instead of an extra `compile-all` option on the `compile` (or `compile_catalog`) command, compilation of all catalogs is performed when neither an `input_file` nor a `locale` is specified.
cmlenz
parents: 176
diff changeset
848 compiling catalog %r to %r
232
0e5c33776833 Use logging module for output from CLI frontend.
cmlenz
parents: 185
diff changeset
849 """ % (po_file, mo_file), sys.stderr.getvalue())
0e5c33776833 Use logging module for output from CLI frontend.
cmlenz
parents: 185
diff changeset
850 finally:
0e5c33776833 Use logging module for output from CLI frontend.
cmlenz
parents: 185
diff changeset
851 if os.path.isfile(mo_file):
0e5c33776833 Use logging module for output from CLI frontend.
cmlenz
parents: 185
diff changeset
852 os.unlink(mo_file)
127
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
853
346
faf0ead3a132 Merged revisions [358:360], [364:370], [373:378], [380:382] from [source:trunk].
cmlenz
parents: 251
diff changeset
854 def test_compile_catalog_with_more_than_2_plural_forms(self):
faf0ead3a132 Merged revisions [358:360], [364:370], [373:378], [380:382] from [source:trunk].
cmlenz
parents: 251
diff changeset
855 po_file = os.path.join(self.datadir, 'project', 'i18n', 'ru_RU',
faf0ead3a132 Merged revisions [358:360], [364:370], [373:378], [380:382] from [source:trunk].
cmlenz
parents: 251
diff changeset
856 'LC_MESSAGES', 'messages.po')
faf0ead3a132 Merged revisions [358:360], [364:370], [373:378], [380:382] from [source:trunk].
cmlenz
parents: 251
diff changeset
857 mo_file = po_file.replace('.po', '.mo')
faf0ead3a132 Merged revisions [358:360], [364:370], [373:378], [380:382] from [source:trunk].
cmlenz
parents: 251
diff changeset
858 try:
faf0ead3a132 Merged revisions [358:360], [364:370], [373:378], [380:382] from [source:trunk].
cmlenz
parents: 251
diff changeset
859 self.cli.run(sys.argv + ['compile',
faf0ead3a132 Merged revisions [358:360], [364:370], [373:378], [380:382] from [source:trunk].
cmlenz
parents: 251
diff changeset
860 '--locale', 'ru_RU', '--use-fuzzy',
faf0ead3a132 Merged revisions [358:360], [364:370], [373:378], [380:382] from [source:trunk].
cmlenz
parents: 251
diff changeset
861 '-d', os.path.join(self.datadir, 'project', 'i18n')])
faf0ead3a132 Merged revisions [358:360], [364:370], [373:378], [380:382] from [source:trunk].
cmlenz
parents: 251
diff changeset
862 assert os.path.isfile(mo_file)
faf0ead3a132 Merged revisions [358:360], [364:370], [373:378], [380:382] from [source:trunk].
cmlenz
parents: 251
diff changeset
863 self.assertEqual("""\
faf0ead3a132 Merged revisions [358:360], [364:370], [373:378], [380:382] from [source:trunk].
cmlenz
parents: 251
diff changeset
864 compiling catalog %r to %r
faf0ead3a132 Merged revisions [358:360], [364:370], [373:378], [380:382] from [source:trunk].
cmlenz
parents: 251
diff changeset
865 """ % (po_file, mo_file), sys.stderr.getvalue())
faf0ead3a132 Merged revisions [358:360], [364:370], [373:378], [380:382] from [source:trunk].
cmlenz
parents: 251
diff changeset
866 finally:
faf0ead3a132 Merged revisions [358:360], [364:370], [373:378], [380:382] from [source:trunk].
cmlenz
parents: 251
diff changeset
867 if os.path.isfile(mo_file):
faf0ead3a132 Merged revisions [358:360], [364:370], [373:378], [380:382] from [source:trunk].
cmlenz
parents: 251
diff changeset
868 os.unlink(mo_file)
faf0ead3a132 Merged revisions [358:360], [364:370], [373:378], [380:382] from [source:trunk].
cmlenz
parents: 251
diff changeset
869
177
a7766f92f944 * Instead of an extra `compile-all` option on the `compile` (or `compile_catalog`) command, compilation of all catalogs is performed when neither an `input_file` nor a `locale` is specified.
cmlenz
parents: 176
diff changeset
870
12
a2c54ef107c2 * Removed pkg_resources/setuptools requirement from various places.
cmlenz
parents:
diff changeset
871 def suite():
a2c54ef107c2 * Removed pkg_resources/setuptools requirement from various places.
cmlenz
parents:
diff changeset
872 suite = unittest.TestSuite()
a2c54ef107c2 * Removed pkg_resources/setuptools requirement from various places.
cmlenz
parents:
diff changeset
873 suite.addTest(doctest.DocTestSuite(frontend))
160
80e51aabc440 Add MO file generation. Closes #21.
cmlenz
parents: 135
diff changeset
874 suite.addTest(unittest.makeSuite(CompileCatalogTestCase))
117
41506e62701f Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 115
diff changeset
875 suite.addTest(unittest.makeSuite(ExtractMessagesTestCase))
181
9a1acb41e7dd The frontends now provide ways to update existing translations catalogs from a template. Closes #22.
cmlenz
parents: 177
diff changeset
876 suite.addTest(unittest.makeSuite(InitCatalogTestCase))
127
0f3a08b1c7ae Add a couple of CLI tests.
cmlenz
parents: 121
diff changeset
877 suite.addTest(unittest.makeSuite(CommandLineInterfaceTestCase))
12
a2c54ef107c2 * Removed pkg_resources/setuptools requirement from various places.
cmlenz
parents:
diff changeset
878 return suite
a2c54ef107c2 * Removed pkg_resources/setuptools requirement from various places.
cmlenz
parents:
diff changeset
879
a2c54ef107c2 * Removed pkg_resources/setuptools requirement from various places.
cmlenz
parents:
diff changeset
880 if __name__ == '__main__':
a2c54ef107c2 * Removed pkg_resources/setuptools requirement from various places.
cmlenz
parents:
diff changeset
881 unittest.main(defaultTest='suite')
Copyright (C) 2012-2017 Edgewall Software