|
11 | 11 |
|
12 | 12 |
|
13 | 13 | # TODO:
|
| 14 | +# - Add new tests, for example for "dgettext" |
14 | 15 | # - Tests should have only one assert.
|
15 | 16 |
|
16 | 17 | GNU_MO_DATA = b'''\
|
@@ -939,46 +940,24 @@ def test_lazy_import(self):
|
939 | 940 | class DGettextTest(GettextBaseTest):
|
940 | 941 |
|
941 | 942 | def setUp(self):
|
942 |
| - GettextBaseTest.setUp(self) |
| 943 | + super().setUp() |
943 | 944 | gettext.bindtextdomain('gettext', os.curdir)
|
944 | 945 |
|
945 |
| - def test_dgettext_found_translation(self): |
946 |
| - result = gettext.dgettext('gettext', 'mullusk') |
947 |
| - self.assertEqual(result, 'bacon') |
| 946 | + def test_dgettext_translation(self): |
| 947 | + translation_cases = [ |
| 948 | + ('gettext', 'mullusk', 'bacon'), |
| 949 | + ('gettext', 'Raymond Luxury Yach-t', 'Throatwobbler Mangrove'), |
| 950 | + ('gettext', 'nudge nudge', 'wink wink'), |
948 | 951 |
|
949 |
| - def test_dgettext_fallback_cases(self): |
950 |
| - test_cases = [ |
951 |
| - ('gettext', 'missing message'), |
952 |
| - ('nonexistent_domain', 'mullusk'), |
953 |
| - ('', 'mullusk'), |
| 952 | + ('gettext', 'missing message', 'missing message'), |
| 953 | + ('nonexistent_domain', 'mullusk', 'mullusk'), |
| 954 | + ('', 'mullusk', gettext.gettext('mullusk')), |
954 | 955 | ]
|
955 |
| - for domain, message in test_cases: |
956 |
| - with self.subTest(domain=domain, message=message): |
957 |
| - result = gettext.dgettext(domain, message) |
958 |
| - if domain == '': |
959 |
| - expected = gettext.gettext(message) |
960 |
| - else: |
961 |
| - expected = message |
| 956 | + for domain, msgid, expected in translation_cases: |
| 957 | + with self.subTest(domain=domain, msgid=msgid): |
| 958 | + result = gettext.dgettext(domain, msgid) |
962 | 959 | self.assertEqual(result, expected)
|
963 | 960 |
|
964 |
| - def test_dgettext_luxury_yacht_translation(self): |
965 |
| - result = gettext.dgettext('gettext', 'Raymond Luxury Yach-t') |
966 |
| - self.assertEqual(result, 'Throatwobbler Mangrove') |
967 |
| - |
968 |
| - def test_dgettext_nudge_nudge_translation(self): |
969 |
| - result = gettext.dgettext('gettext', 'nudge nudge') |
970 |
| - self.assertEqual(result, 'wink wink') |
971 |
| - |
972 |
| - def test_dgettext_multiline_translation(self): |
973 |
| - message = '''This module provides internationalization and localization |
974 |
| -support for your Python programs by providing an interface to the GNU |
975 |
| -gettext message catalog library.''' |
976 |
| - expected = '''Guvf zbqhyr cebivqrf vagreangvbanyvmngvba naq ybpnyvmngvba |
977 |
| -fhccbeg sbe lbhe Clguba cebtenzf ol cebivqvat na vagresnpr gb gur TAH |
978 |
| -trggrkg zrffntr pngnybt yvoenel.''' |
979 |
| - result = gettext.dgettext('gettext', message) |
980 |
| - self.assertEqual(result, expected) |
981 |
| - |
982 | 961 |
|
983 | 962 | if __name__ == '__main__':
|
984 | 963 | unittest.main()
|
|
0 commit comments