summaryrefslogtreecommitdiff
path: root/Lib/test/test_gettext.py
diff options
context:
space:
mode:
Diffstat (limited to 'Lib/test/test_gettext.py')
-rw-r--r--Lib/test/test_gettext.py162
1 files changed, 114 insertions, 48 deletions
diff --git a/Lib/test/test_gettext.py b/Lib/test/test_gettext.py
index b5ed05eab7..bbad1028dc 100644
--- a/Lib/test/test_gettext.py
+++ b/Lib/test/test_gettext.py
@@ -1,5 +1,6 @@
import os
import base64
+import contextlib
import gettext
import locale
import unittest
@@ -461,116 +462,174 @@ class LGettextTestCase(GettextBaseTest):
GettextBaseTest.setUp(self)
self.mofile = MOFILE
+ @contextlib.contextmanager
+ def assertDeprecated(self, name):
+ with self.assertWarnsRegex(DeprecationWarning,
+ fr'^{name}\(\) is deprecated'):
+ yield
+
def test_lgettext(self):
lgettext = gettext.lgettext
ldgettext = gettext.ldgettext
- self.assertEqual(lgettext('mullusk'), b'bacon')
- self.assertEqual(lgettext('spam'), b'spam')
- self.assertEqual(ldgettext('gettext', 'mullusk'), b'bacon')
- self.assertEqual(ldgettext('gettext', 'spam'), b'spam')
+ with self.assertDeprecated('lgettext'):
+ self.assertEqual(lgettext('mullusk'), b'bacon')
+ with self.assertDeprecated('lgettext'):
+ self.assertEqual(lgettext('spam'), b'spam')
+ with self.assertDeprecated('ldgettext'):
+ self.assertEqual(ldgettext('gettext', 'mullusk'), b'bacon')
+ with self.assertDeprecated('ldgettext'):
+ self.assertEqual(ldgettext('gettext', 'spam'), b'spam')
def test_lgettext_2(self):
with open(self.mofile, 'rb') as fp:
t = gettext.GNUTranslations(fp)
lgettext = t.lgettext
- self.assertEqual(lgettext('mullusk'), b'bacon')
- self.assertEqual(lgettext('spam'), b'spam')
+ with self.assertDeprecated('lgettext'):
+ self.assertEqual(lgettext('mullusk'), b'bacon')
+ with self.assertDeprecated('lgettext'):
+ self.assertEqual(lgettext('spam'), b'spam')
def test_lgettext_bind_textdomain_codeset(self):
lgettext = gettext.lgettext
ldgettext = gettext.ldgettext
- saved_codeset = gettext.bind_textdomain_codeset('gettext')
+ with self.assertDeprecated('bind_textdomain_codeset'):
+ saved_codeset = gettext.bind_textdomain_codeset('gettext')
try:
- gettext.bind_textdomain_codeset('gettext', 'utf-16')
- self.assertEqual(lgettext('mullusk'), 'bacon'.encode('utf-16'))
- self.assertEqual(lgettext('spam'), 'spam'.encode('utf-16'))
- self.assertEqual(ldgettext('gettext', 'mullusk'), 'bacon'.encode('utf-16'))
- self.assertEqual(ldgettext('gettext', 'spam'), 'spam'.encode('utf-16'))
+ with self.assertDeprecated('bind_textdomain_codeset'):
+ gettext.bind_textdomain_codeset('gettext', 'utf-16')
+ with self.assertDeprecated('lgettext'):
+ self.assertEqual(lgettext('mullusk'), 'bacon'.encode('utf-16'))
+ with self.assertDeprecated('lgettext'):
+ self.assertEqual(lgettext('spam'), 'spam'.encode('utf-16'))
+ with self.assertDeprecated('ldgettext'):
+ self.assertEqual(ldgettext('gettext', 'mullusk'), 'bacon'.encode('utf-16'))
+ with self.assertDeprecated('ldgettext'):
+ self.assertEqual(ldgettext('gettext', 'spam'), 'spam'.encode('utf-16'))
finally:
del gettext._localecodesets['gettext']
- gettext.bind_textdomain_codeset('gettext', saved_codeset)
+ with self.assertDeprecated('bind_textdomain_codeset'):
+ gettext.bind_textdomain_codeset('gettext', saved_codeset)
def test_lgettext_output_encoding(self):
with open(self.mofile, 'rb') as fp:
t = gettext.GNUTranslations(fp)
lgettext = t.lgettext
- t.set_output_charset('utf-16')
- self.assertEqual(lgettext('mullusk'), 'bacon'.encode('utf-16'))
- self.assertEqual(lgettext('spam'), 'spam'.encode('utf-16'))
+ with self.assertDeprecated('set_output_charset'):
+ t.set_output_charset('utf-16')
+ with self.assertDeprecated('lgettext'):
+ self.assertEqual(lgettext('mullusk'), 'bacon'.encode('utf-16'))
+ with self.assertDeprecated('lgettext'):
+ self.assertEqual(lgettext('spam'), 'spam'.encode('utf-16'))
def test_lngettext(self):
lngettext = gettext.lngettext
ldngettext = gettext.ldngettext
- x = lngettext('There is %s file', 'There are %s files', 1)
+ with self.assertDeprecated('lngettext'):
+ x = lngettext('There is %s file', 'There are %s files', 1)
self.assertEqual(x, b'Hay %s fichero')
- x = lngettext('There is %s file', 'There are %s files', 2)
+ with self.assertDeprecated('lngettext'):
+ x = lngettext('There is %s file', 'There are %s files', 2)
self.assertEqual(x, b'Hay %s ficheros')
- x = lngettext('There is %s directory', 'There are %s directories', 1)
+ with self.assertDeprecated('lngettext'):
+ x = lngettext('There is %s directory', 'There are %s directories', 1)
self.assertEqual(x, b'There is %s directory')
- x = lngettext('There is %s directory', 'There are %s directories', 2)
+ with self.assertDeprecated('lngettext'):
+ x = lngettext('There is %s directory', 'There are %s directories', 2)
self.assertEqual(x, b'There are %s directories')
- x = ldngettext('gettext', 'There is %s file', 'There are %s files', 1)
+ with self.assertDeprecated('ldngettext'):
+ x = ldngettext('gettext', 'There is %s file', 'There are %s files', 1)
self.assertEqual(x, b'Hay %s fichero')
- x = ldngettext('gettext', 'There is %s file', 'There are %s files', 2)
+ with self.assertDeprecated('ldngettext'):
+ x = ldngettext('gettext', 'There is %s file', 'There are %s files', 2)
self.assertEqual(x, b'Hay %s ficheros')
- x = ldngettext('gettext', 'There is %s directory', 'There are %s directories', 1)
+ with self.assertDeprecated('ldngettext'):
+ x = ldngettext('gettext', 'There is %s directory', 'There are %s directories', 1)
self.assertEqual(x, b'There is %s directory')
- x = ldngettext('gettext', 'There is %s directory', 'There are %s directories', 2)
+ with self.assertDeprecated('ldngettext'):
+ x = ldngettext('gettext', 'There is %s directory', 'There are %s directories', 2)
self.assertEqual(x, b'There are %s directories')
def test_lngettext_2(self):
with open(self.mofile, 'rb') as fp:
t = gettext.GNUTranslations(fp)
lngettext = t.lngettext
- x = lngettext('There is %s file', 'There are %s files', 1)
+ with self.assertDeprecated('lngettext'):
+ x = lngettext('There is %s file', 'There are %s files', 1)
self.assertEqual(x, b'Hay %s fichero')
- x = lngettext('There is %s file', 'There are %s files', 2)
+ with self.assertDeprecated('lngettext'):
+ x = lngettext('There is %s file', 'There are %s files', 2)
self.assertEqual(x, b'Hay %s ficheros')
- x = lngettext('There is %s directory', 'There are %s directories', 1)
+ with self.assertDeprecated('lngettext'):
+ x = lngettext('There is %s directory', 'There are %s directories', 1)
self.assertEqual(x, b'There is %s directory')
- x = lngettext('There is %s directory', 'There are %s directories', 2)
+ with self.assertDeprecated('lngettext'):
+ x = lngettext('There is %s directory', 'There are %s directories', 2)
self.assertEqual(x, b'There are %s directories')
def test_lngettext_bind_textdomain_codeset(self):
lngettext = gettext.lngettext
ldngettext = gettext.ldngettext
- saved_codeset = gettext.bind_textdomain_codeset('gettext')
+ with self.assertDeprecated('bind_textdomain_codeset'):
+ saved_codeset = gettext.bind_textdomain_codeset('gettext')
try:
- gettext.bind_textdomain_codeset('gettext', 'utf-16')
- x = lngettext('There is %s file', 'There are %s files', 1)
+ with self.assertDeprecated('bind_textdomain_codeset'):
+ gettext.bind_textdomain_codeset('gettext', 'utf-16')
+ with self.assertDeprecated('lngettext'):
+ x = lngettext('There is %s file', 'There are %s files', 1)
self.assertEqual(x, 'Hay %s fichero'.encode('utf-16'))
- x = lngettext('There is %s file', 'There are %s files', 2)
+ with self.assertDeprecated('lngettext'):
+ x = lngettext('There is %s file', 'There are %s files', 2)
self.assertEqual(x, 'Hay %s ficheros'.encode('utf-16'))
- x = lngettext('There is %s directory', 'There are %s directories', 1)
+ with self.assertDeprecated('lngettext'):
+ x = lngettext('There is %s directory', 'There are %s directories', 1)
self.assertEqual(x, 'There is %s directory'.encode('utf-16'))
- x = lngettext('There is %s directory', 'There are %s directories', 2)
+ with self.assertDeprecated('lngettext'):
+ x = lngettext('There is %s directory', 'There are %s directories', 2)
self.assertEqual(x, 'There are %s directories'.encode('utf-16'))
- x = ldngettext('gettext', 'There is %s file', 'There are %s files', 1)
+ with self.assertDeprecated('ldngettext'):
+ x = ldngettext('gettext', 'There is %s file', 'There are %s files', 1)
self.assertEqual(x, 'Hay %s fichero'.encode('utf-16'))
- x = ldngettext('gettext', 'There is %s file', 'There are %s files', 2)
+ with self.assertDeprecated('ldngettext'):
+ x = ldngettext('gettext', 'There is %s file', 'There are %s files', 2)
self.assertEqual(x, 'Hay %s ficheros'.encode('utf-16'))
- x = ldngettext('gettext', 'There is %s directory', 'There are %s directories', 1)
+ with self.assertDeprecated('ldngettext'):
+ x = ldngettext('gettext', 'There is %s directory', 'There are %s directories', 1)
self.assertEqual(x, 'There is %s directory'.encode('utf-16'))
- x = ldngettext('gettext', 'There is %s directory', 'There are %s directories', 2)
+ with self.assertDeprecated('ldngettext'):
+ x = ldngettext('gettext', 'There is %s directory', 'There are %s directories', 2)
self.assertEqual(x, 'There are %s directories'.encode('utf-16'))
finally:
del gettext._localecodesets['gettext']
- gettext.bind_textdomain_codeset('gettext', saved_codeset)
+ with self.assertDeprecated('bind_textdomain_codeset'):
+ gettext.bind_textdomain_codeset('gettext', saved_codeset)
def test_lngettext_output_encoding(self):
with open(self.mofile, 'rb') as fp:
t = gettext.GNUTranslations(fp)
lngettext = t.lngettext
- t.set_output_charset('utf-16')
- x = lngettext('There is %s file', 'There are %s files', 1)
+ with self.assertDeprecated('set_output_charset'):
+ t.set_output_charset('utf-16')
+ with self.assertDeprecated('lngettext'):
+ x = lngettext('There is %s file', 'There are %s files', 1)
self.assertEqual(x, 'Hay %s fichero'.encode('utf-16'))
- x = lngettext('There is %s file', 'There are %s files', 2)
+ with self.assertDeprecated('lngettext'):
+ x = lngettext('There is %s file', 'There are %s files', 2)
self.assertEqual(x, 'Hay %s ficheros'.encode('utf-16'))
- x = lngettext('There is %s directory', 'There are %s directories', 1)
+ with self.assertDeprecated('lngettext'):
+ x = lngettext('There is %s directory', 'There are %s directories', 1)
self.assertEqual(x, 'There is %s directory'.encode('utf-16'))
- x = lngettext('There is %s directory', 'There are %s directories', 2)
+ with self.assertDeprecated('lngettext'):
+ x = lngettext('There is %s directory', 'There are %s directories', 2)
self.assertEqual(x, 'There are %s directories'.encode('utf-16'))
+ def test_output_encoding(self):
+ with open(self.mofile, 'rb') as fp:
+ t = gettext.GNUTranslations(fp)
+ with self.assertDeprecated('set_output_charset'):
+ t.set_output_charset('utf-16')
+ with self.assertDeprecated('output_charset'):
+ self.assertEqual(t.output_charset(), 'utf-16')
+
class GNUTranslationParsingTest(GettextBaseTest):
def test_plural_form_error_issue17898(self):
@@ -642,6 +701,16 @@ class GettextCacheTestCase(GettextBaseTest):
self.assertEqual(len(gettext._translations), 2)
self.assertEqual(t.__class__, DummyGNUTranslations)
+ # Test deprecated parameter codeset
+ with self.assertWarnsRegex(DeprecationWarning, 'parameter codeset'):
+ t = gettext.translation('gettext', self.localedir,
+ class_=DummyGNUTranslations,
+ codeset='utf-16')
+ self.assertEqual(len(gettext._translations), 2)
+ self.assertEqual(t.__class__, DummyGNUTranslations)
+ with self.assertWarns(DeprecationWarning):
+ self.assertEqual(t.output_charset(), 'utf-16')
+
class MiscTestCase(unittest.TestCase):
def test__all__(self):
@@ -649,11 +718,8 @@ class MiscTestCase(unittest.TestCase):
support.check__all__(self, gettext, blacklist=blacklist)
-def test_main():
- support.run_unittest(__name__)
-
if __name__ == '__main__':
- test_main()
+ unittest.main()
# For reference, here's the .po file used to created the GNU_MO_DATA above.