summaryrefslogtreecommitdiff
path: root/tests/test_unidecode.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test_unidecode.py')
-rw-r--r--tests/test_unidecode.py37
1 files changed, 36 insertions, 1 deletions
diff --git a/tests/test_unidecode.py b/tests/test_unidecode.py
index 100cfca..42bb678 100644
--- a/tests/test_unidecode.py
+++ b/tests/test_unidecode.py
@@ -2,7 +2,7 @@
# vim:ts=4 sw=4 expandtab softtabstop=4
import unittest
import sys
-from unidecode import unidecode, unidecode_expect_ascii, unidecode_expect_nonascii
+from unidecode import unidecode, unidecode_expect_ascii, unidecode_expect_nonascii, UnidecodeError
import warnings
@@ -502,6 +502,41 @@ class BaseTestUnidecode():
self.unidecode(u'ⓐⒶ⑳⒇⒛⓴⓾⓿'),
)
+ @unittest.skipIf(sys.maxunicode < 0x10000, "narrow build")
+ def test_errors_ignore(self):
+ # unidecode doesn't have replacements for private use characters
+ o = self.unidecode(u"test \U000f0000 test", errors='ignore')
+ self.assertEqual('test test', o)
+
+ @unittest.skipIf(sys.maxunicode < 0x10000, "narrow build")
+ def test_errors_replace(self):
+ o = self.unidecode(u"test \U000f0000 test", errors='replace')
+ self.assertEqual('test ? test', o)
+
+ @unittest.skipIf(sys.maxunicode < 0x10000, "narrow build")
+ def test_errors_replace_char(self):
+ o = self.unidecode(u"test \U000f0000 test", errors='replace', replace_char='[?] ')
+ self.assertEqual('test [?] test', o)
+
+ @unittest.skipIf(sys.maxunicode < 0x10000, "narrow build")
+ def test_errors_strict(self):
+ with self.assertRaises(UnidecodeError) as e:
+ o = self.unidecode(u"test \U000f0000 test", errors='strict')
+
+ self.assertEqual(5, e.exception.index)
+
+ @unittest.skipIf(sys.maxunicode < 0x10000, "narrow build")
+ def test_errors_preserve(self):
+ s = u"test \U000f0000 test"
+ o = self.unidecode(s, errors='preserve')
+
+ self.assertEqual(s, o)
+
+ @unittest.skipIf(sys.maxunicode < 0x10000, "narrow build")
+ def test_errors_invalid(self):
+ with self.assertRaises(UnidecodeError) as e:
+ self.unidecode(u"test \U000f0000 test", errors='invalid')
+
class TestUnidecode(BaseTestUnidecode, unittest.TestCase):
unidecode = staticmethod(unidecode)