annotate babel/messages/tests/frontend.py @ 130:383b18bfcc95

Fake `sys.argv` for CLI tests.
author cmlenz
date Mon, 18 Jun 2007 17:13:09 +0000
parents d6aef0675953
children 9e3d2b227ec3
rev   line source
14
29ef15a6fd75 * Removed pkg_resources/setuptools requirement from various places.
cmlenz
parents:
diff changeset
1 # -*- coding: utf-8 -*-
29ef15a6fd75 * Removed pkg_resources/setuptools requirement from various places.
cmlenz
parents:
diff changeset
2 #
29ef15a6fd75 * Removed pkg_resources/setuptools requirement from various places.
cmlenz
parents:
diff changeset
3 # Copyright (C) 2007 Edgewall Software
29ef15a6fd75 * Removed pkg_resources/setuptools requirement from various places.
cmlenz
parents:
diff changeset
4 # All rights reserved.
29ef15a6fd75 * Removed pkg_resources/setuptools requirement from various places.
cmlenz
parents:
diff changeset
5 #
29ef15a6fd75 * Removed pkg_resources/setuptools requirement from various places.
cmlenz
parents:
diff changeset
6 # This software is licensed as described in the file COPYING, which
29ef15a6fd75 * Removed pkg_resources/setuptools requirement from various places.
cmlenz
parents:
diff changeset
7 # you should have received as part of this distribution. The terms
29ef15a6fd75 * Removed pkg_resources/setuptools requirement from various places.
cmlenz
parents:
diff changeset
8 # are also available at http://babel.edgewall.org/wiki/License.
29ef15a6fd75 * Removed pkg_resources/setuptools requirement from various places.
cmlenz
parents:
diff changeset
9 #
29ef15a6fd75 * Removed pkg_resources/setuptools requirement from various places.
cmlenz
parents:
diff changeset
10 # This software consists of voluntary contributions made by many
29ef15a6fd75 * Removed pkg_resources/setuptools requirement from various places.
cmlenz
parents:
diff changeset
11 # individuals. For the exact contribution history, see the revision
29ef15a6fd75 * Removed pkg_resources/setuptools requirement from various places.
cmlenz
parents:
diff changeset
12 # history and logs, available at http://babel.edgewall.org/log/.
29ef15a6fd75 * Removed pkg_resources/setuptools requirement from various places.
cmlenz
parents:
diff changeset
13
119
c84f629da9de Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 117
diff changeset
14 from distutils.dist import Distribution
c84f629da9de Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 117
diff changeset
15 from distutils.errors import DistutilsOptionError, DistutilsSetupError
c84f629da9de Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 117
diff changeset
16 from distutils.log import _global_log
14
29ef15a6fd75 * Removed pkg_resources/setuptools requirement from various places.
cmlenz
parents:
diff changeset
17 import doctest
119
c84f629da9de Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 117
diff changeset
18 import os
122
03f106700f02 Added tests for `new_catalog` distutils command.
cmlenz
parents: 119
diff changeset
19 import shutil
129
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
20 from StringIO import StringIO
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
21 import sys
119
c84f629da9de Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 117
diff changeset
22 import time
14
29ef15a6fd75 * Removed pkg_resources/setuptools requirement from various places.
cmlenz
parents:
diff changeset
23 import unittest
29ef15a6fd75 * Removed pkg_resources/setuptools requirement from various places.
cmlenz
parents:
diff changeset
24
116
c6214115e4da Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 56
diff changeset
25 from babel import __version__ as VERSION
119
c84f629da9de Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 117
diff changeset
26 from babel.messages import frontend
116
c6214115e4da Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 56
diff changeset
27
119
c84f629da9de Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 117
diff changeset
28
c84f629da9de Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 117
diff changeset
29 class ExtractMessagesTestCase(unittest.TestCase):
c84f629da9de Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 117
diff changeset
30
116
c6214115e4da Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 56
diff changeset
31 def setUp(self):
c6214115e4da Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 56
diff changeset
32 self.olddir = os.getcwd()
c6214115e4da Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 56
diff changeset
33 self.datadir = os.path.join(os.path.dirname(__file__), 'data')
c6214115e4da Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 56
diff changeset
34 os.chdir(self.datadir)
119
c84f629da9de Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 117
diff changeset
35 _global_log.threshold = 5 # shut up distutils logging
c84f629da9de Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 117
diff changeset
36
c84f629da9de Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 117
diff changeset
37 self.dist = Distribution(dict(
c84f629da9de Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 117
diff changeset
38 name='TestProject',
c84f629da9de Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 117
diff changeset
39 version='0.1',
c84f629da9de Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 117
diff changeset
40 packages=['project']
c84f629da9de Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 117
diff changeset
41 ))
c84f629da9de Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 117
diff changeset
42 self.cmd = frontend.extract_messages(self.dist)
c84f629da9de Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 117
diff changeset
43 self.cmd.initialize_options()
c84f629da9de Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 117
diff changeset
44
c84f629da9de Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 117
diff changeset
45 def tearDown(self):
122
03f106700f02 Added tests for `new_catalog` distutils command.
cmlenz
parents: 119
diff changeset
46 pot_file = os.path.join(self.datadir, 'project', 'i18n', 'temp.pot')
119
c84f629da9de Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 117
diff changeset
47 if os.path.isfile(pot_file):
c84f629da9de Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 117
diff changeset
48 os.unlink(pot_file)
c84f629da9de Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 117
diff changeset
49
c84f629da9de Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 117
diff changeset
50 os.chdir(self.olddir)
c84f629da9de Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 117
diff changeset
51
c84f629da9de Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 117
diff changeset
52 def test_neither_default_nor_custom_keywords(self):
122
03f106700f02 Added tests for `new_catalog` distutils command.
cmlenz
parents: 119
diff changeset
53 self.cmd.output_file = 'dummy'
119
c84f629da9de Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 117
diff changeset
54 self.cmd.no_default_keywords = True
c84f629da9de Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 117
diff changeset
55 self.assertRaises(DistutilsOptionError, self.cmd.finalize_options)
c84f629da9de Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 117
diff changeset
56
c84f629da9de Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 117
diff changeset
57 def test_no_output_file_specified(self):
c84f629da9de Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 117
diff changeset
58 self.assertRaises(DistutilsOptionError, self.cmd.finalize_options)
c84f629da9de Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 117
diff changeset
59
c84f629da9de Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 117
diff changeset
60 def test_both_sort_output_and_sort_by_file(self):
122
03f106700f02 Added tests for `new_catalog` distutils command.
cmlenz
parents: 119
diff changeset
61 self.cmd.output_file = 'dummy'
119
c84f629da9de Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 117
diff changeset
62 self.cmd.sort_output = True
c84f629da9de Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 117
diff changeset
63 self.cmd.sort_by_file = True
c84f629da9de Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 117
diff changeset
64 self.assertRaises(DistutilsOptionError, self.cmd.finalize_options)
c84f629da9de Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 117
diff changeset
65
c84f629da9de Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 117
diff changeset
66 def test_extraction_with_default_mapping(self):
c84f629da9de Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 117
diff changeset
67 self.cmd.copyright_holder = 'FooBar, Inc.'
c84f629da9de Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 117
diff changeset
68 self.cmd.msgid_bugs_address = 'bugs.address@email.tld'
122
03f106700f02 Added tests for `new_catalog` distutils command.
cmlenz
parents: 119
diff changeset
69 self.cmd.output_file = 'project/i18n/temp.pot'
119
c84f629da9de Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 117
diff changeset
70 self.cmd.add_comments = 'TRANSLATOR:,TRANSLATORS:'
c84f629da9de Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 117
diff changeset
71
c84f629da9de Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 117
diff changeset
72 self.cmd.finalize_options()
c84f629da9de Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 117
diff changeset
73 self.cmd.run()
122
03f106700f02 Added tests for `new_catalog` distutils command.
cmlenz
parents: 119
diff changeset
74
03f106700f02 Added tests for `new_catalog` distutils command.
cmlenz
parents: 119
diff changeset
75 pot_file = os.path.join(self.datadir, 'project', 'i18n', 'temp.pot')
03f106700f02 Added tests for `new_catalog` distutils command.
cmlenz
parents: 119
diff changeset
76 assert os.path.isfile(pot_file)
03f106700f02 Added tests for `new_catalog` distutils command.
cmlenz
parents: 119
diff changeset
77
03f106700f02 Added tests for `new_catalog` distutils command.
cmlenz
parents: 119
diff changeset
78 self.assertEqual(
116
c6214115e4da Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 56
diff changeset
79 r"""# Translations template for TestProject.
119
c84f629da9de Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 117
diff changeset
80 # Copyright (C) %(year)s FooBar, Inc.
116
c6214115e4da Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 56
diff changeset
81 # This file is distributed under the same license as the TestProject
c6214115e4da Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 56
diff changeset
82 # project.
c6214115e4da Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 56
diff changeset
83 # FIRST AUTHOR <EMAIL@ADDRESS>, %(year)s.
c6214115e4da Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 56
diff changeset
84 #
c6214115e4da Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 56
diff changeset
85 #, fuzzy
c6214115e4da Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 56
diff changeset
86 msgid ""
c6214115e4da Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 56
diff changeset
87 msgstr ""
c6214115e4da Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 56
diff changeset
88 "Project-Id-Version: TestProject 0.1\n"
c6214115e4da Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 56
diff changeset
89 "Report-Msgid-Bugs-To: bugs.address@email.tld\n"
c6214115e4da Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 56
diff changeset
90 "POT-Creation-Date: %(date)s\n"
c6214115e4da Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 56
diff changeset
91 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
c6214115e4da Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 56
diff changeset
92 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
c6214115e4da Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 56
diff changeset
93 "Language-Team: LANGUAGE <LL@li.org>\n"
c6214115e4da Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 56
diff changeset
94 "MIME-Version: 1.0\n"
c6214115e4da Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 56
diff changeset
95 "Content-Type: text/plain; charset=utf-8\n"
c6214115e4da Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 56
diff changeset
96 "Content-Transfer-Encoding: 8bit\n"
c6214115e4da Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 56
diff changeset
97 "Generated-By: Babel %(version)s\n"
c6214115e4da Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 56
diff changeset
98
c6214115e4da Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 56
diff changeset
99 #. This will be a translator coment,
c6214115e4da Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 56
diff changeset
100 #. that will include several lines
c6214115e4da Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 56
diff changeset
101 #: project/file1.py:8
c6214115e4da Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 56
diff changeset
102 msgid "bar"
c6214115e4da Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 56
diff changeset
103 msgstr ""
c6214115e4da Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 56
diff changeset
104
c6214115e4da Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 56
diff changeset
105 #: project/file2.py:9
c6214115e4da Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 56
diff changeset
106 msgid "foobar"
c6214115e4da Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 56
diff changeset
107 msgid_plural "foobars"
c6214115e4da Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 56
diff changeset
108 msgstr[0] ""
c6214115e4da Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 56
diff changeset
109 msgstr[1] ""
c6214115e4da Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 56
diff changeset
110
c6214115e4da Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 56
diff changeset
111 #: project/CVS/this_wont_normally_be_here.py:11
c6214115e4da Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 56
diff changeset
112 msgid "FooBar"
c6214115e4da Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 56
diff changeset
113 msgid_plural "FooBars"
c6214115e4da Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 56
diff changeset
114 msgstr[0] ""
c6214115e4da Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 56
diff changeset
115 msgstr[1] ""
c6214115e4da Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 56
diff changeset
116
c6214115e4da Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 56
diff changeset
117 """ % {'version': VERSION,
c6214115e4da Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 56
diff changeset
118 'year': time.strftime('%Y'),
122
03f106700f02 Added tests for `new_catalog` distutils command.
cmlenz
parents: 119
diff changeset
119 'date': time.strftime('%Y-%m-%d %H:%M%z')}, open(pot_file, 'U').read())
119
c84f629da9de Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 117
diff changeset
120
c84f629da9de Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 117
diff changeset
121 def test_extraction_with_mapping_file(self):
c84f629da9de Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 117
diff changeset
122 self.cmd.copyright_holder = 'FooBar, Inc.'
c84f629da9de Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 117
diff changeset
123 self.cmd.msgid_bugs_address = 'bugs.address@email.tld'
c84f629da9de Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 117
diff changeset
124 self.cmd.mapping_file = 'mapping.cfg'
122
03f106700f02 Added tests for `new_catalog` distutils command.
cmlenz
parents: 119
diff changeset
125 self.cmd.output_file = 'project/i18n/temp.pot'
119
c84f629da9de Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 117
diff changeset
126 self.cmd.add_comments = 'TRANSLATOR:,TRANSLATORS:'
c84f629da9de Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 117
diff changeset
127
c84f629da9de Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 117
diff changeset
128 self.cmd.finalize_options()
c84f629da9de Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 117
diff changeset
129 self.cmd.run()
122
03f106700f02 Added tests for `new_catalog` distutils command.
cmlenz
parents: 119
diff changeset
130
03f106700f02 Added tests for `new_catalog` distutils command.
cmlenz
parents: 119
diff changeset
131 pot_file = os.path.join(self.datadir, 'project', 'i18n', 'temp.pot')
03f106700f02 Added tests for `new_catalog` distutils command.
cmlenz
parents: 119
diff changeset
132 assert os.path.isfile(pot_file)
03f106700f02 Added tests for `new_catalog` distutils command.
cmlenz
parents: 119
diff changeset
133
03f106700f02 Added tests for `new_catalog` distutils command.
cmlenz
parents: 119
diff changeset
134 self.assertEqual(
116
c6214115e4da Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 56
diff changeset
135 r"""# Translations template for TestProject.
119
c84f629da9de Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 117
diff changeset
136 # Copyright (C) %(year)s FooBar, Inc.
116
c6214115e4da Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 56
diff changeset
137 # This file is distributed under the same license as the TestProject
c6214115e4da Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 56
diff changeset
138 # project.
c6214115e4da Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 56
diff changeset
139 # FIRST AUTHOR <EMAIL@ADDRESS>, %(year)s.
c6214115e4da Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 56
diff changeset
140 #
c6214115e4da Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 56
diff changeset
141 #, fuzzy
c6214115e4da Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 56
diff changeset
142 msgid ""
c6214115e4da Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 56
diff changeset
143 msgstr ""
c6214115e4da Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 56
diff changeset
144 "Project-Id-Version: TestProject 0.1\n"
c6214115e4da Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 56
diff changeset
145 "Report-Msgid-Bugs-To: bugs.address@email.tld\n"
c6214115e4da Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 56
diff changeset
146 "POT-Creation-Date: %(date)s\n"
c6214115e4da Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 56
diff changeset
147 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
c6214115e4da Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 56
diff changeset
148 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
c6214115e4da Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 56
diff changeset
149 "Language-Team: LANGUAGE <LL@li.org>\n"
c6214115e4da Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 56
diff changeset
150 "MIME-Version: 1.0\n"
c6214115e4da Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 56
diff changeset
151 "Content-Type: text/plain; charset=utf-8\n"
c6214115e4da Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 56
diff changeset
152 "Content-Transfer-Encoding: 8bit\n"
c6214115e4da Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 56
diff changeset
153 "Generated-By: Babel %(version)s\n"
c6214115e4da Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 56
diff changeset
154
c6214115e4da Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 56
diff changeset
155 #. This will be a translator coment,
c6214115e4da Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 56
diff changeset
156 #. that will include several lines
c6214115e4da Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 56
diff changeset
157 #: project/file1.py:8
c6214115e4da Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 56
diff changeset
158 msgid "bar"
c6214115e4da Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 56
diff changeset
159 msgstr ""
c6214115e4da Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 56
diff changeset
160
c6214115e4da Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 56
diff changeset
161 #: project/file2.py:9
c6214115e4da Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 56
diff changeset
162 msgid "foobar"
c6214115e4da Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 56
diff changeset
163 msgid_plural "foobars"
c6214115e4da Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 56
diff changeset
164 msgstr[0] ""
c6214115e4da Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 56
diff changeset
165 msgstr[1] ""
c6214115e4da Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 56
diff changeset
166
c6214115e4da Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 56
diff changeset
167 """ % {'version': VERSION,
c6214115e4da Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
palgarvio
parents: 56
diff changeset
168 'year': time.strftime('%Y'),
122
03f106700f02 Added tests for `new_catalog` distutils command.
cmlenz
parents: 119
diff changeset
169 'date': time.strftime('%Y-%m-%d %H:%M%z')}, open(pot_file, 'U').read())
119
c84f629da9de Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 117
diff changeset
170
c84f629da9de Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 117
diff changeset
171 def test_extraction_with_mapping_dict(self):
c84f629da9de Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 117
diff changeset
172 self.dist.message_extractors = {
c84f629da9de Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 117
diff changeset
173 'project': [
c84f629da9de Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 117
diff changeset
174 ('**/CVS/**.*', 'ignore', None),
c84f629da9de Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 117
diff changeset
175 ('**.py', 'python', None),
c84f629da9de Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 117
diff changeset
176 ]
c84f629da9de Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 117
diff changeset
177 }
c84f629da9de Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 117
diff changeset
178 self.cmd.copyright_holder = 'FooBar, Inc.'
c84f629da9de Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 117
diff changeset
179 self.cmd.msgid_bugs_address = 'bugs.address@email.tld'
122
03f106700f02 Added tests for `new_catalog` distutils command.
cmlenz
parents: 119
diff changeset
180 self.cmd.output_file = 'project/i18n/temp.pot'
119
c84f629da9de Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 117
diff changeset
181 self.cmd.add_comments = 'TRANSLATOR:,TRANSLATORS:'
c84f629da9de Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 117
diff changeset
182
c84f629da9de Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 117
diff changeset
183 self.cmd.finalize_options()
c84f629da9de Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 117
diff changeset
184 self.cmd.run()
122
03f106700f02 Added tests for `new_catalog` distutils command.
cmlenz
parents: 119
diff changeset
185
03f106700f02 Added tests for `new_catalog` distutils command.
cmlenz
parents: 119
diff changeset
186 pot_file = os.path.join(self.datadir, 'project', 'i18n', 'temp.pot')
03f106700f02 Added tests for `new_catalog` distutils command.
cmlenz
parents: 119
diff changeset
187 assert os.path.isfile(pot_file)
03f106700f02 Added tests for `new_catalog` distutils command.
cmlenz
parents: 119
diff changeset
188
03f106700f02 Added tests for `new_catalog` distutils command.
cmlenz
parents: 119
diff changeset
189 self.assertEqual(
119
c84f629da9de Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 117
diff changeset
190 r"""# Translations template for TestProject.
c84f629da9de Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 117
diff changeset
191 # Copyright (C) %(year)s FooBar, Inc.
c84f629da9de Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 117
diff changeset
192 # This file is distributed under the same license as the TestProject
c84f629da9de Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 117
diff changeset
193 # project.
c84f629da9de Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 117
diff changeset
194 # FIRST AUTHOR <EMAIL@ADDRESS>, %(year)s.
c84f629da9de Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 117
diff changeset
195 #
c84f629da9de Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 117
diff changeset
196 #, fuzzy
c84f629da9de Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 117
diff changeset
197 msgid ""
c84f629da9de Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 117
diff changeset
198 msgstr ""
c84f629da9de Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 117
diff changeset
199 "Project-Id-Version: TestProject 0.1\n"
c84f629da9de Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 117
diff changeset
200 "Report-Msgid-Bugs-To: bugs.address@email.tld\n"
c84f629da9de Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 117
diff changeset
201 "POT-Creation-Date: %(date)s\n"
c84f629da9de Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 117
diff changeset
202 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
c84f629da9de Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 117
diff changeset
203 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
c84f629da9de Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 117
diff changeset
204 "Language-Team: LANGUAGE <LL@li.org>\n"
c84f629da9de Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 117
diff changeset
205 "MIME-Version: 1.0\n"
c84f629da9de Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 117
diff changeset
206 "Content-Type: text/plain; charset=utf-8\n"
c84f629da9de Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 117
diff changeset
207 "Content-Transfer-Encoding: 8bit\n"
c84f629da9de Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 117
diff changeset
208 "Generated-By: Babel %(version)s\n"
c84f629da9de Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 117
diff changeset
209
c84f629da9de Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 117
diff changeset
210 #. This will be a translator coment,
c84f629da9de Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 117
diff changeset
211 #. that will include several lines
c84f629da9de Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 117
diff changeset
212 #: project/file1.py:8
c84f629da9de Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 117
diff changeset
213 msgid "bar"
c84f629da9de Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 117
diff changeset
214 msgstr ""
c84f629da9de Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 117
diff changeset
215
c84f629da9de Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 117
diff changeset
216 #: project/file2.py:9
c84f629da9de Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 117
diff changeset
217 msgid "foobar"
c84f629da9de Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 117
diff changeset
218 msgid_plural "foobars"
c84f629da9de Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 117
diff changeset
219 msgstr[0] ""
c84f629da9de Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 117
diff changeset
220 msgstr[1] ""
c84f629da9de Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 117
diff changeset
221
c84f629da9de Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 117
diff changeset
222 """ % {'version': VERSION,
c84f629da9de Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 117
diff changeset
223 'year': time.strftime('%Y'),
122
03f106700f02 Added tests for `new_catalog` distutils command.
cmlenz
parents: 119
diff changeset
224 'date': time.strftime('%Y-%m-%d %H:%M%z')}, open(pot_file, 'U').read())
03f106700f02 Added tests for `new_catalog` distutils command.
cmlenz
parents: 119
diff changeset
225
03f106700f02 Added tests for `new_catalog` distutils command.
cmlenz
parents: 119
diff changeset
226
03f106700f02 Added tests for `new_catalog` distutils command.
cmlenz
parents: 119
diff changeset
227 class NewCatalogTestCase(unittest.TestCase):
03f106700f02 Added tests for `new_catalog` distutils command.
cmlenz
parents: 119
diff changeset
228
03f106700f02 Added tests for `new_catalog` distutils command.
cmlenz
parents: 119
diff changeset
229 def setUp(self):
03f106700f02 Added tests for `new_catalog` distutils command.
cmlenz
parents: 119
diff changeset
230 self.olddir = os.getcwd()
03f106700f02 Added tests for `new_catalog` distutils command.
cmlenz
parents: 119
diff changeset
231 self.datadir = os.path.join(os.path.dirname(__file__), 'data')
03f106700f02 Added tests for `new_catalog` distutils command.
cmlenz
parents: 119
diff changeset
232 os.chdir(self.datadir)
03f106700f02 Added tests for `new_catalog` distutils command.
cmlenz
parents: 119
diff changeset
233 _global_log.threshold = 5 # shut up distutils logging
03f106700f02 Added tests for `new_catalog` distutils command.
cmlenz
parents: 119
diff changeset
234
03f106700f02 Added tests for `new_catalog` distutils command.
cmlenz
parents: 119
diff changeset
235 self.dist = Distribution(dict(
03f106700f02 Added tests for `new_catalog` distutils command.
cmlenz
parents: 119
diff changeset
236 name='TestProject',
03f106700f02 Added tests for `new_catalog` distutils command.
cmlenz
parents: 119
diff changeset
237 version='0.1',
03f106700f02 Added tests for `new_catalog` distutils command.
cmlenz
parents: 119
diff changeset
238 packages=['project']
03f106700f02 Added tests for `new_catalog` distutils command.
cmlenz
parents: 119
diff changeset
239 ))
03f106700f02 Added tests for `new_catalog` distutils command.
cmlenz
parents: 119
diff changeset
240 self.cmd = frontend.new_catalog(self.dist)
03f106700f02 Added tests for `new_catalog` distutils command.
cmlenz
parents: 119
diff changeset
241 self.cmd.initialize_options()
03f106700f02 Added tests for `new_catalog` distutils command.
cmlenz
parents: 119
diff changeset
242
03f106700f02 Added tests for `new_catalog` distutils command.
cmlenz
parents: 119
diff changeset
243 def tearDown(self):
03f106700f02 Added tests for `new_catalog` distutils command.
cmlenz
parents: 119
diff changeset
244 locale_dir = os.path.join(self.datadir, 'project', 'i18n', 'en_US')
03f106700f02 Added tests for `new_catalog` distutils command.
cmlenz
parents: 119
diff changeset
245 if os.path.isdir(locale_dir):
03f106700f02 Added tests for `new_catalog` distutils command.
cmlenz
parents: 119
diff changeset
246 shutil.rmtree(locale_dir)
03f106700f02 Added tests for `new_catalog` distutils command.
cmlenz
parents: 119
diff changeset
247
03f106700f02 Added tests for `new_catalog` distutils command.
cmlenz
parents: 119
diff changeset
248 os.chdir(self.olddir)
03f106700f02 Added tests for `new_catalog` distutils command.
cmlenz
parents: 119
diff changeset
249
03f106700f02 Added tests for `new_catalog` distutils command.
cmlenz
parents: 119
diff changeset
250 def test_no_input_file(self):
03f106700f02 Added tests for `new_catalog` distutils command.
cmlenz
parents: 119
diff changeset
251 self.cmd.locale = 'en_US'
03f106700f02 Added tests for `new_catalog` distutils command.
cmlenz
parents: 119
diff changeset
252 self.cmd.output_file = 'dummy'
03f106700f02 Added tests for `new_catalog` distutils command.
cmlenz
parents: 119
diff changeset
253 self.assertRaises(DistutilsOptionError, self.cmd.finalize_options)
03f106700f02 Added tests for `new_catalog` distutils command.
cmlenz
parents: 119
diff changeset
254
03f106700f02 Added tests for `new_catalog` distutils command.
cmlenz
parents: 119
diff changeset
255 def test_no_locale(self):
03f106700f02 Added tests for `new_catalog` distutils command.
cmlenz
parents: 119
diff changeset
256 self.cmd.input_file = 'dummy'
03f106700f02 Added tests for `new_catalog` distutils command.
cmlenz
parents: 119
diff changeset
257 self.cmd.output_file = 'dummy'
03f106700f02 Added tests for `new_catalog` distutils command.
cmlenz
parents: 119
diff changeset
258 self.assertRaises(DistutilsOptionError, self.cmd.finalize_options)
03f106700f02 Added tests for `new_catalog` distutils command.
cmlenz
parents: 119
diff changeset
259
123
5b4f302abf53 Fix parsing of timezone in POT creation date.
cmlenz
parents: 122
diff changeset
260 def test_with_output_dir(self):
122
03f106700f02 Added tests for `new_catalog` distutils command.
cmlenz
parents: 119
diff changeset
261 self.cmd.input_file = 'project/i18n/messages.pot'
03f106700f02 Added tests for `new_catalog` distutils command.
cmlenz
parents: 119
diff changeset
262 self.cmd.locale = 'en_US'
03f106700f02 Added tests for `new_catalog` distutils command.
cmlenz
parents: 119
diff changeset
263 self.cmd.output_dir = 'project/i18n'
03f106700f02 Added tests for `new_catalog` distutils command.
cmlenz
parents: 119
diff changeset
264
03f106700f02 Added tests for `new_catalog` distutils command.
cmlenz
parents: 119
diff changeset
265 self.cmd.finalize_options()
03f106700f02 Added tests for `new_catalog` distutils command.
cmlenz
parents: 119
diff changeset
266 self.cmd.run()
03f106700f02 Added tests for `new_catalog` distutils command.
cmlenz
parents: 119
diff changeset
267
03f106700f02 Added tests for `new_catalog` distutils command.
cmlenz
parents: 119
diff changeset
268 po_file = os.path.join(self.datadir, 'project', 'i18n', 'en_US',
03f106700f02 Added tests for `new_catalog` distutils command.
cmlenz
parents: 119
diff changeset
269 'LC_MESSAGES', 'messages.po')
03f106700f02 Added tests for `new_catalog` distutils command.
cmlenz
parents: 119
diff changeset
270 assert os.path.isfile(po_file)
03f106700f02 Added tests for `new_catalog` distutils command.
cmlenz
parents: 119
diff changeset
271
03f106700f02 Added tests for `new_catalog` distutils command.
cmlenz
parents: 119
diff changeset
272 self.assertEqual(
03f106700f02 Added tests for `new_catalog` distutils command.
cmlenz
parents: 119
diff changeset
273 r"""# English (United States) translations for TestProject.
03f106700f02 Added tests for `new_catalog` distutils command.
cmlenz
parents: 119
diff changeset
274 # Copyright (C) 2007 FooBar, Inc.
03f106700f02 Added tests for `new_catalog` distutils command.
cmlenz
parents: 119
diff changeset
275 # This file is distributed under the same license as the TestProject
03f106700f02 Added tests for `new_catalog` distutils command.
cmlenz
parents: 119
diff changeset
276 # project.
03f106700f02 Added tests for `new_catalog` distutils command.
cmlenz
parents: 119
diff changeset
277 # FIRST AUTHOR <EMAIL@ADDRESS>, 2007.
03f106700f02 Added tests for `new_catalog` distutils command.
cmlenz
parents: 119
diff changeset
278 #
03f106700f02 Added tests for `new_catalog` distutils command.
cmlenz
parents: 119
diff changeset
279 #, fuzzy
03f106700f02 Added tests for `new_catalog` distutils command.
cmlenz
parents: 119
diff changeset
280 msgid ""
03f106700f02 Added tests for `new_catalog` distutils command.
cmlenz
parents: 119
diff changeset
281 msgstr ""
03f106700f02 Added tests for `new_catalog` distutils command.
cmlenz
parents: 119
diff changeset
282 "Project-Id-Version: TestProject 0.1\n"
03f106700f02 Added tests for `new_catalog` distutils command.
cmlenz
parents: 119
diff changeset
283 "Report-Msgid-Bugs-To: bugs.address@email.tld\n"
03f106700f02 Added tests for `new_catalog` distutils command.
cmlenz
parents: 119
diff changeset
284 "POT-Creation-Date: 2007-04-01 15:30+0200\n"
03f106700f02 Added tests for `new_catalog` distutils command.
cmlenz
parents: 119
diff changeset
285 "PO-Revision-Date: %(date)s\n"
03f106700f02 Added tests for `new_catalog` distutils command.
cmlenz
parents: 119
diff changeset
286 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
03f106700f02 Added tests for `new_catalog` distutils command.
cmlenz
parents: 119
diff changeset
287 "Language-Team: en_US <LL@li.org>\n"
03f106700f02 Added tests for `new_catalog` distutils command.
cmlenz
parents: 119
diff changeset
288 "Plural-Forms: nplurals=2; plural=(n != 1)\n"
03f106700f02 Added tests for `new_catalog` distutils command.
cmlenz
parents: 119
diff changeset
289 "MIME-Version: 1.0\n"
03f106700f02 Added tests for `new_catalog` distutils command.
cmlenz
parents: 119
diff changeset
290 "Content-Type: text/plain; charset=utf-8\n"
03f106700f02 Added tests for `new_catalog` distutils command.
cmlenz
parents: 119
diff changeset
291 "Content-Transfer-Encoding: 8bit\n"
03f106700f02 Added tests for `new_catalog` distutils command.
cmlenz
parents: 119
diff changeset
292 "Generated-By: Babel %(version)s\n"
03f106700f02 Added tests for `new_catalog` distutils command.
cmlenz
parents: 119
diff changeset
293
03f106700f02 Added tests for `new_catalog` distutils command.
cmlenz
parents: 119
diff changeset
294 #. This will be a translator coment,
03f106700f02 Added tests for `new_catalog` distutils command.
cmlenz
parents: 119
diff changeset
295 #. that will include several lines
03f106700f02 Added tests for `new_catalog` distutils command.
cmlenz
parents: 119
diff changeset
296 #: project/file1.py:8
03f106700f02 Added tests for `new_catalog` distutils command.
cmlenz
parents: 119
diff changeset
297 msgid "bar"
03f106700f02 Added tests for `new_catalog` distutils command.
cmlenz
parents: 119
diff changeset
298 msgstr ""
03f106700f02 Added tests for `new_catalog` distutils command.
cmlenz
parents: 119
diff changeset
299
03f106700f02 Added tests for `new_catalog` distutils command.
cmlenz
parents: 119
diff changeset
300 #: project/file2.py:9
03f106700f02 Added tests for `new_catalog` distutils command.
cmlenz
parents: 119
diff changeset
301 msgid "foobar"
03f106700f02 Added tests for `new_catalog` distutils command.
cmlenz
parents: 119
diff changeset
302 msgid_plural "foobars"
03f106700f02 Added tests for `new_catalog` distutils command.
cmlenz
parents: 119
diff changeset
303 msgstr[0] ""
03f106700f02 Added tests for `new_catalog` distutils command.
cmlenz
parents: 119
diff changeset
304 msgstr[1] ""
03f106700f02 Added tests for `new_catalog` distutils command.
cmlenz
parents: 119
diff changeset
305
03f106700f02 Added tests for `new_catalog` distutils command.
cmlenz
parents: 119
diff changeset
306 """ % {'version': VERSION,
03f106700f02 Added tests for `new_catalog` distutils command.
cmlenz
parents: 119
diff changeset
307 'date': time.strftime('%Y-%m-%d %H:%M%z')},
03f106700f02 Added tests for `new_catalog` distutils command.
cmlenz
parents: 119
diff changeset
308 open(po_file, 'U').read())
14
29ef15a6fd75 * Removed pkg_resources/setuptools requirement from various places.
cmlenz
parents:
diff changeset
309
117
0b4796ed9426 Added new logo.
cmlenz
parents: 116
diff changeset
310
129
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
311 class CommandLineInterfaceTestCase(unittest.TestCase):
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
312
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
313 def setUp(self):
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
314 self.datadir = os.path.join(os.path.dirname(__file__), 'data')
130
383b18bfcc95 Fake `sys.argv` for CLI tests.
cmlenz
parents: 129
diff changeset
315 self.orig_argv = sys.argv
129
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
316 self.orig_stdout = sys.stdout
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
317 self.orig_stderr = sys.stderr
130
383b18bfcc95 Fake `sys.argv` for CLI tests.
cmlenz
parents: 129
diff changeset
318 sys.argv = ['babel']
129
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
319 sys.stdout = StringIO()
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
320 sys.stderr = StringIO()
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
321 self.cli = frontend.CommandLineInterface()
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
322
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
323 def tearDown(self):
130
383b18bfcc95 Fake `sys.argv` for CLI tests.
cmlenz
parents: 129
diff changeset
324 sys.argv = self.orig_argv
129
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
325 sys.stdout = self.orig_stdout
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
326 sys.stderr = self.orig_stderr
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
327
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
328 def test_usage(self):
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
329 try:
130
383b18bfcc95 Fake `sys.argv` for CLI tests.
cmlenz
parents: 129
diff changeset
330 self.cli.run(sys.argv)
129
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
331 self.fail('Expected SystemExit')
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
332 except SystemExit, e:
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
333 self.assertEqual(2, e.code)
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
334 self.assertEqual("""\
130
383b18bfcc95 Fake `sys.argv` for CLI tests.
cmlenz
parents: 129
diff changeset
335 usage: babel command [options] [args]
129
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
336
130
383b18bfcc95 Fake `sys.argv` for CLI tests.
cmlenz
parents: 129
diff changeset
337 babel: error: incorrect number of arguments
129
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
338 """, sys.stderr.getvalue())
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
339
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
340 def test_help(self):
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
341 try:
130
383b18bfcc95 Fake `sys.argv` for CLI tests.
cmlenz
parents: 129
diff changeset
342 self.cli.run(sys.argv + ['--help'])
129
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
343 self.fail('Expected SystemExit')
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
344 except SystemExit, e:
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
345 self.assertEqual(0, e.code)
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
346 self.assertEqual("""\
130
383b18bfcc95 Fake `sys.argv` for CLI tests.
cmlenz
parents: 129
diff changeset
347 usage: babel command [options] [args]
129
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
348
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
349 options:
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
350 --version show program's version number and exit
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
351 -h, --help show this help message and exit
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
352
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
353 commands:
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
354 extract extract messages from source files and generate a POT file
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
355 init create new message catalogs from a template
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
356 """, sys.stdout.getvalue())
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
357
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
358 def test_extract_with_default_mapping(self):
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
359 pot_file = os.path.join(self.datadir, 'project', 'i18n', 'temp.pot')
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
360 try:
130
383b18bfcc95 Fake `sys.argv` for CLI tests.
cmlenz
parents: 129
diff changeset
361 self.cli.run(sys.argv + ['extract',
129
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
362 '--copyright-holder', 'FooBar, Inc.',
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
363 '--msgid-bugs-address', 'bugs.address@email.tld',
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
364 '-c', 'TRANSLATOR', '-c', 'TRANSLATORS:',
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
365 '-o', pot_file, os.path.join(self.datadir, 'project')])
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
366 except SystemExit, e:
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
367 self.assertEqual(0, e.code)
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
368 assert os.path.isfile(pot_file)
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
369 self.assertEqual(
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
370 r"""# Translations template for TestProject.
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
371 # Copyright (C) %(year)s FooBar, Inc.
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
372 # This file is distributed under the same license as the TestProject
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
373 # project.
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
374 # FIRST AUTHOR <EMAIL@ADDRESS>, %(year)s.
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
375 #
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
376 #, fuzzy
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
377 msgid ""
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
378 msgstr ""
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
379 "Project-Id-Version: TestProject 0.1\n"
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
380 "Report-Msgid-Bugs-To: bugs.address@email.tld\n"
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
381 "POT-Creation-Date: %(date)s\n"
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
382 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
383 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
384 "Language-Team: LANGUAGE <LL@li.org>\n"
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
385 "MIME-Version: 1.0\n"
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
386 "Content-Type: text/plain; charset=utf-8\n"
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
387 "Content-Transfer-Encoding: 8bit\n"
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
388 "Generated-By: Babel %(version)s\n"
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
389
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
390 #. This will be a translator coment,
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
391 #. that will include several lines
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
392 #: project/file1.py:8
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
393 msgid "bar"
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
394 msgstr ""
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
395
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
396 #: project/file2.py:9
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
397 msgid "foobar"
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
398 msgid_plural "foobars"
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
399 msgstr[0] ""
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
400 msgstr[1] ""
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
401
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
402 #: project/CVS/this_wont_normally_be_here.py:11
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
403 msgid "FooBar"
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
404 msgid_plural "FooBars"
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
405 msgstr[0] ""
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
406 msgstr[1] ""
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
407
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
408 """ % {'version': VERSION,
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
409 'year': time.strftime('%Y'),
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
410 'date': time.strftime('%Y-%m-%d %H:%M%z')}, open(pot_file, 'U').read())
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
411
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
412 def test_extract_with_mapping_file(self):
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
413 pot_file = os.path.join(self.datadir, 'project', 'i18n', 'temp.pot')
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
414 try:
130
383b18bfcc95 Fake `sys.argv` for CLI tests.
cmlenz
parents: 129
diff changeset
415 self.cli.run(sys.argv + ['extract',
129
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
416 '--copyright-holder', 'FooBar, Inc.',
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
417 '--msgid-bugs-address', 'bugs.address@email.tld',
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
418 '--mapping', os.path.join(self.datadir, 'mapping.cfg'),
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
419 '-c', 'TRANSLATOR', '-c', 'TRANSLATORS:',
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
420 '-o', pot_file, os.path.join(self.datadir, 'project')])
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
421 except SystemExit, e:
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
422 self.assertEqual(0, e.code)
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
423 assert os.path.isfile(pot_file)
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
424 self.assertEqual(
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
425 r"""# Translations template for TestProject.
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
426 # Copyright (C) %(year)s FooBar, Inc.
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
427 # This file is distributed under the same license as the TestProject
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
428 # project.
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
429 # FIRST AUTHOR <EMAIL@ADDRESS>, %(year)s.
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
430 #
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
431 #, fuzzy
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
432 msgid ""
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
433 msgstr ""
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
434 "Project-Id-Version: TestProject 0.1\n"
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
435 "Report-Msgid-Bugs-To: bugs.address@email.tld\n"
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
436 "POT-Creation-Date: %(date)s\n"
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
437 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
438 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
439 "Language-Team: LANGUAGE <LL@li.org>\n"
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
440 "MIME-Version: 1.0\n"
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
441 "Content-Type: text/plain; charset=utf-8\n"
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
442 "Content-Transfer-Encoding: 8bit\n"
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
443 "Generated-By: Babel %(version)s\n"
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
444
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
445 #. This will be a translator coment,
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
446 #. that will include several lines
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
447 #: project/file1.py:8
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
448 msgid "bar"
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
449 msgstr ""
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
450
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
451 #: project/file2.py:9
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
452 msgid "foobar"
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
453 msgid_plural "foobars"
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
454 msgstr[0] ""
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
455 msgstr[1] ""
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
456
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
457 """ % {'version': VERSION,
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
458 'year': time.strftime('%Y'),
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
459 'date': time.strftime('%Y-%m-%d %H:%M%z')}, open(pot_file, 'U').read())
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
460
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
461 def test_init_with_output_dir(self):
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
462 po_file = os.path.join(self.datadir, 'project', 'i18n', 'en_US',
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
463 'LC_MESSAGES', 'messages.po')
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
464 try:
130
383b18bfcc95 Fake `sys.argv` for CLI tests.
cmlenz
parents: 129
diff changeset
465 self.cli.run(sys.argv + ['init',
129
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
466 '--locale', 'en_US',
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
467 '-d', os.path.join(self.datadir, 'project', 'i18n'),
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
468 '-i', os.path.join(self.datadir, 'project', 'i18n',
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
469 'messages.pot')])
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
470 except SystemExit, e:
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
471 self.assertEqual(0, e.code)
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
472 assert os.path.isfile(pot_file)
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
473 self.assertEqual(
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
474 r"""# English (United States) translations for TestProject.
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
475 # Copyright (C) 2007 FooBar, Inc.
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
476 # This file is distributed under the same license as the TestProject
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
477 # project.
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
478 # FIRST AUTHOR <EMAIL@ADDRESS>, 2007.
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
479 #
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
480 #, fuzzy
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
481 msgid ""
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
482 msgstr ""
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
483 "Project-Id-Version: TestProject 0.1\n"
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
484 "Report-Msgid-Bugs-To: bugs.address@email.tld\n"
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
485 "POT-Creation-Date: 2007-04-01 15:30+0200\n"
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
486 "PO-Revision-Date: %(date)s\n"
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
487 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
488 "Language-Team: en_US <LL@li.org>\n"
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
489 "Plural-Forms: nplurals=2; plural=(n != 1)\n"
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
490 "MIME-Version: 1.0\n"
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
491 "Content-Type: text/plain; charset=utf-8\n"
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
492 "Content-Transfer-Encoding: 8bit\n"
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
493 "Generated-By: Babel %(version)s\n"
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
494
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
495 #. This will be a translator coment,
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
496 #. that will include several lines
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
497 #: project/file1.py:8
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
498 msgid "bar"
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
499 msgstr ""
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
500
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
501 #: project/file2.py:9
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
502 msgid "foobar"
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
503 msgid_plural "foobars"
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
504 msgstr[0] ""
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
505 msgstr[1] ""
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
506
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
507 """ % {'version': VERSION,
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
508 'date': time.strftime('%Y-%m-%d %H:%M%z')},
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
509 open(po_file, 'U').read())
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
510
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
511
14
29ef15a6fd75 * Removed pkg_resources/setuptools requirement from various places.
cmlenz
parents:
diff changeset
512 def suite():
29ef15a6fd75 * Removed pkg_resources/setuptools requirement from various places.
cmlenz
parents:
diff changeset
513 suite = unittest.TestSuite()
29ef15a6fd75 * Removed pkg_resources/setuptools requirement from various places.
cmlenz
parents:
diff changeset
514 suite.addTest(doctest.DocTestSuite(frontend))
119
c84f629da9de Made new frontend tests more ''unit-y'', i.e. calling the APIs directly instead of launching the scripts.
cmlenz
parents: 117
diff changeset
515 suite.addTest(unittest.makeSuite(ExtractMessagesTestCase))
122
03f106700f02 Added tests for `new_catalog` distutils command.
cmlenz
parents: 119
diff changeset
516 suite.addTest(unittest.makeSuite(NewCatalogTestCase))
129
d6aef0675953 Add a couple of CLI tests.
cmlenz
parents: 123
diff changeset
517 suite.addTest(unittest.makeSuite(CommandLineInterfaceTestCase))
14
29ef15a6fd75 * Removed pkg_resources/setuptools requirement from various places.
cmlenz
parents:
diff changeset
518 return suite
29ef15a6fd75 * Removed pkg_resources/setuptools requirement from various places.
cmlenz
parents:
diff changeset
519
29ef15a6fd75 * Removed pkg_resources/setuptools requirement from various places.
cmlenz
parents:
diff changeset
520 if __name__ == '__main__':
29ef15a6fd75 * Removed pkg_resources/setuptools requirement from various places.
cmlenz
parents:
diff changeset
521 unittest.main(defaultTest='suite')
Copyright (C) 2012-2017 Edgewall Software