add keyword arguments support to str/unicode encode and decode #6300
diff --git a/Lib/test/test_str.py b/Lib/test/test_str.py
index c546154..fa86db4 100644
--- a/Lib/test/test_str.py
+++ b/Lib/test/test_str.py
@@ -401,6 +401,17 @@
def test_buffer_is_readonly(self):
self.assertRaises(TypeError, sys.stdin.readinto, b"")
+ def test_encode_and_decode_kwargs(self):
+ self.assertEqual('abcde'.encode('ascii', 'replace'),
+ 'abcde'.encode('ascii', errors='replace'))
+ self.assertEqual('abcde'.encode('ascii', 'ignore'),
+ 'abcde'.encode(encoding='ascii', errors='ignore'))
+ self.assertEqual('Andr\202 x'.decode('ascii', 'ignore'),
+ 'Andr\202 x'.decode('ascii', errors='ignore'))
+ self.assertEqual('Andr\202 x'.decode('ascii', 'replace'),
+ 'Andr\202 x'.decode(encoding='ascii', errors='replace'))
+
+
def test_main():
test_support.run_unittest(StrTest)
diff --git a/Lib/test/test_unicode.py b/Lib/test/test_unicode.py
index 43830b2..2b269cc 100644
--- a/Lib/test/test_unicode.py
+++ b/Lib/test/test_unicode.py
@@ -593,12 +593,20 @@
self.assertRaises(UnicodeError, u'Andr\202 x'.encode, 'ascii','strict')
self.assertEqual(u'Andr\202 x'.encode('ascii','ignore'), "Andr x")
self.assertEqual(u'Andr\202 x'.encode('ascii','replace'), "Andr? x")
+ self.assertEqual(u'Andr\202 x'.encode('ascii', 'replace'),
+ u'Andr\202 x'.encode('ascii', errors='replace'))
+ self.assertEqual(u'Andr\202 x'.encode('ascii', 'ignore'),
+ u'Andr\202 x'.encode(encoding='ascii', errors='ignore'))
# Error handling (decoding)
self.assertRaises(UnicodeError, unicode, 'Andr\202 x', 'ascii')
self.assertRaises(UnicodeError, unicode, 'Andr\202 x', 'ascii','strict')
self.assertEqual(unicode('Andr\202 x','ascii','ignore'), u"Andr x")
self.assertEqual(unicode('Andr\202 x','ascii','replace'), u'Andr\uFFFD x')
+ self.assertEqual(u'abcde'.decode('ascii', 'ignore'),
+ u'abcde'.decode('ascii', errors='ignore'))
+ self.assertEqual(u'abcde'.decode('ascii', 'replace'),
+ u'abcde'.decode(encoding='ascii', errors='replace'))
# Error handling (unknown character names)
self.assertEqual("\\N{foo}xx".decode("unicode-escape", "ignore"), u"xx")