diff --git a/Lib/test/test_gettext.py b/Lib/test/test_gettext.py index 33b7d75e3ff203..ebb19738f5fdf8 100644 --- a/Lib/test/test_gettext.py +++ b/Lib/test/test_gettext.py @@ -937,6 +937,28 @@ def test_lazy_import(self): ensure_lazy_imports("gettext", {"re", "warnings", "locale"}) +class DGettextTest(GettextBaseTest): + + def setUp(self): + super().setUp() + gettext.bindtextdomain('gettext', os.curdir) + + def test_dgettext_translation(self): + translation_cases = [ + ('gettext', 'mullusk', 'bacon'), + ('gettext', 'Raymond Luxury Yach-t', 'Throatwobbler Mangrove'), + ('gettext', 'nudge nudge', 'wink wink'), + + ('gettext', 'missing message', 'missing message'), + ('nonexistent_domain', 'mullusk', 'mullusk'), + ('', 'mullusk', gettext.gettext('mullusk')), + ] + for domain, msgid, expected in translation_cases: + with self.subTest(domain=domain, msgid=msgid): + result = gettext.dgettext(domain, msgid) + self.assertEqual(result, expected) + + if __name__ == '__main__': unittest.main()