FazBrowse GitHub Viewer | Trending |
URL:
| Home
Tools: [Download Repo ZIP]   [Original HTTPS Page]

gh-130655: Add tests for dgettext, dngettext, dpgettext, dnpgettext by magic-peach · Pull Request #154006 · python/cpython · GitHub

Repository navigation

Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension .py  (1) All 1 file type selected
Viewed files
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Unified
Split
Hide whitespace
Diff view
Unified
Split
Hide whitespace
107 changes: 106 additions & 1 deletion Lib/test/test_gettext.py
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,8 @@


# TODO:
# - Add new tests, for example for "dgettext"
# - Add new tests, for example for "dgettext", "dngettext", "dpgettext",
# "dnpgettext" (gh-130655)
# - Tests should have only one assert.

GNU_MO_DATA = b'''\
Expand Down Expand Up @@ -944,6 +945,110 @@ def test_translation_fallback(self):
self.assertIsInstance(t, gettext.NullTranslations)


class DGettextTests(GettextBaseTest):

def setUp(self):
super().setUp()
gettext.bindtextdomain('gettext', os.curdir)
gettext.textdomain('gettext')

def test_dgettext_translation(self):
cases = [
('gettext', 'nudge nudge', 'wink wink'),
('gettext', 'mullusk', 'bacon'),
('gettext', 'Raymond Luxury Yach-t', 'Throatwobbler Mangrove'),
('gettext', 'albatross', 'albatross'),
('gettext', 'missing message', 'missing message'),
('nonexistent_domain', 'mullusk', 'mullusk'),
('', 'mullusk', 'mullusk'),
]
for domain, msgid, expected in cases:
with self.subTest(domain=domain, msgid=msgid):
self.assertEqual(gettext.dgettext(domain, msgid), expected)


class DnGettextTests(GettextBaseTest):

def setUp(self):
super().setUp()
gettext.bindtextdomain('gettext', os.curdir)
gettext.textdomain('gettext')

def test_dngettext_translation(self):
cases = [
('gettext', 'There is %s file', 'There are %s files', 1,
'Hay %s fichero'),
('gettext', 'There is %s file', 'There are %s files', 5,
'Hay %s ficheros'),
('gettext', '%d file deleted', '%d files deleted', 1,
'%d file deleted'),
('gettext', '%d file deleted', '%d files deleted', 5,
'%d files deleted'),
('nonexistent_domain', 'There is %s file', 'There are %s files', 1,
'There is %s file'),
('nonexistent_domain', 'There is %s file', 'There are %s files', 5,
'There are %s files'),
]
for domain, msgid1, msgid2, n, expected in cases:
with self.subTest(domain=domain, n=n):
self.assertEqual(gettext.dngettext(domain, msgid1, msgid2, n),
expected)


class DpGettextTests(GettextBaseTest):

def setUp(self):
super().setUp()
gettext.bindtextdomain('gettext', os.curdir)
gettext.textdomain('gettext')

def test_dpgettext_translation(self):
cases = [
('gettext', 'my context', 'nudge nudge',
'wink wink (in "my context")'),
('gettext', 'my other context', 'nudge nudge',
'wink wink (in "my other context")'),
('gettext', 'my context', 'albatross', 'albatross'),
('gettext', 'wrong context', 'nudge nudge', 'nudge nudge'),
('nonexistent_domain', 'my context', 'nudge nudge', 'nudge nudge'),
]
for domain, context, msgid, expected in cases:
with self.subTest(domain=domain, context=context):
self.assertEqual(gettext.dpgettext(domain, context, msgid),
expected)


class DnpGettextTests(GettextBaseTest):

def setUp(self):
super().setUp()
gettext.bindtextdomain('gettext', os.curdir)
gettext.textdomain('gettext')

def test_dnpgettext_translation(self):
cases = [
('gettext', 'With context', 'There is %s file',
'There are %s files', 1, 'Hay %s fichero (context)'),
('gettext', 'With context', 'There is %s file',
'There are %s files', 5, 'Hay %s ficheros (context)'),
('gettext', 'With context', '%d file deleted',
'%d files deleted', 1, '%d file deleted'),
('gettext', 'With context', '%d file deleted',
'%d files deleted', 5, '%d files deleted'),
('gettext', 'Wrong context', 'There is %s file',
'There are %s files', 1, 'There is %s file'),
('nonexistent_domain', 'With context', 'There is %s file',
'There are %s files', 1, 'There is %s file'),
('nonexistent_domain', 'With context', 'There is %s file',
'There are %s files', 5, 'There are %s files'),
]
for domain, context, msgid1, msgid2, n, expected in cases:
with self.subTest(domain=domain, context=context, n=n):
self.assertEqual(
gettext.dnpgettext(domain, context, msgid1, msgid2, n),
expected)


if __name__ == '__main__':
unittest.main()

Expand Down
Loading

Back | FazBrowse Home | New Git URL