Skip to content

Commit 6a36eb0

Browse files
committed
small hack to make the test suite correct
1 parent 87ee0d2 commit 6a36eb0

File tree

1 file changed

+14
-7
lines changed

1 file changed

+14
-7
lines changed

Lib/test/test_capi/test_codecs.py

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import unittest
88
import unittest.mock as mock
99
import _testcapi
10+
from getopt import error
1011
from test.support import import_helper
1112

1213
_testlimitedcapi = import_helper.import_module('_testlimitedcapi')
@@ -748,14 +749,19 @@ def test_codec_stream_writer(self):
748749
class CAPICodecErrors(unittest.TestCase):
749750

750751
def test_codec_register_error(self):
751-
self.assertRaises(LookupError, _testcapi.codec_lookup_error, 'custom')
752+
try:
753+
error_handler = _testcapi.codec_lookup_error('custom')
754+
except LookupError:
755+
error_handler = None
752756

753-
def error_handler(exc):
754-
raise exc
757+
if error_handler is None:
758+
def custom_error_handler(exc):
759+
raise exc
755760

756-
error_handler = mock.Mock(wraps=error_handler)
757-
_testcapi.codec_register_error('custom', error_handler)
758-
# self.addCleanup(codecs.unregister_error, 'custom')
761+
error_handler = mock.Mock(wraps=custom_error_handler)
762+
_testcapi.codec_register_error('custom', error_handler)
763+
else:
764+
self.assertIsInstance(error_handler, mock.Mock)
759765

760766
self.assertRaises(UnicodeEncodeError, codecs.encode,
761767
'\xff', 'ascii', errors='custom')
@@ -765,6 +771,7 @@ def error_handler(exc):
765771
self.assertRaises(UnicodeDecodeError, codecs.decode,
766772
b'\xff', 'ascii', errors='custom')
767773
error_handler.assert_called_once()
774+
error_handler.reset_mock()
768775

769776
def test_codec_lookup_error(self):
770777
codec_lookup_error = _testcapi.codec_lookup_error
@@ -774,7 +781,7 @@ def test_codec_lookup_error(self):
774781
self.assertIs(codec_lookup_error('replace'), codecs.replace_errors)
775782
self.assertIs(codec_lookup_error('xmlcharrefreplace'), codecs.xmlcharrefreplace_errors)
776783
self.assertIs(codec_lookup_error('namereplace'), codecs.namereplace_errors)
777-
self.assertRaises(LookupError, codec_lookup_error, 'custom')
784+
self.assertRaises(LookupError, codec_lookup_error, 'unknown')
778785

779786
def test_codec_error_handlers(self):
780787
exceptions = [

0 commit comments

Comments
 (0)