MCPcopy Index your code
hub / github.com/python/cpython / test_translate

Method test_translate

Lib/test/test_capi/test_unicode.py:1215–1236  ·  view source on GitHub ↗

Test PyUnicode_Translate()

(self)

Source from the content-addressed store, hash-verified

1213 @support.cpython_only
1214 @unittest.skipIf(_testlimitedcapi is None, 'need _testlimitedcapi module')
1215 def test_translate(self):
1216 """Test PyUnicode_Translate()"""
1217 from _testlimitedcapi import unicode_translate as translate
1218
1219 self.assertEqual(translate('abcd', {ord('a'): 'A', ord('b'): ord('B'), ord('c'): '<>'}), 'AB<>d')
1220 self.assertEqual(translate('абвг', {ord('а'): 'А', ord('б'): ord('Б'), ord('в'): '<>'}), 'АБ<>г')
1221 self.assertEqual(translate('abc', {}), 'abc')
1222 self.assertEqual(translate('abc', []), 'abc')
1223 self.assertRaises(UnicodeTranslateError, translate, 'abc', {ord('b'): None})
1224 self.assertRaises(UnicodeTranslateError, translate, 'abc', {ord('b'): None}, 'strict')
1225 self.assertRaises(LookupError, translate, 'abc', {ord('b'): None}, 'foo')
1226 self.assertEqual(translate('abc', {ord('b'): None}, 'ignore'), 'ac')
1227 self.assertEqual(translate('abc', {ord('b'): None}, 'replace'), 'a\ufffdc')
1228 self.assertEqual(translate('abc', {ord('b'): None}, 'backslashreplace'), r'a\x62c')
1229 # XXX Other error handlers do not support UnicodeTranslateError
1230 self.assertRaises(TypeError, translate, b'abc', [])
1231 self.assertRaises(TypeError, translate, 123, [])
1232 self.assertRaises(TypeError, translate, 'abc', {ord('a'): b'A'})
1233 self.assertRaises(TypeError, translate, 'abc', 123)
1234 self.assertRaises(TypeError, translate, 'abc', NULL)
1235 self.assertRaises(LookupError, translate, 'abc', {ord('b'): None}, 'foo')
1236 # CRASHES translate(NULL, [])
1237
1238 @support.cpython_only
1239 @unittest.skipIf(_testlimitedcapi is None, 'need _testlimitedcapi module')

Callers

nothing calls this directly

Calls 3

translateFunction · 0.50
assertEqualMethod · 0.45
assertRaisesMethod · 0.45

Tested by

no test coverage detected