bpo-41842: Add codecs.unregister() function (GH-22360)
Add codecs.unregister() and PyCodec_Unregister() functions
to unregister a codec search function.
diff --git a/Lib/test/test_codecs.py b/Lib/test/test_codecs.py
index 3dd5682..ed508f3 100644
--- a/Lib/test/test_codecs.py
+++ b/Lib/test/test_codecs.py
@@ -1641,6 +1641,18 @@
self.assertRaises(TypeError, codecs.register)
self.assertRaises(TypeError, codecs.register, 42)
+ def test_unregister(self):
+ name = "nonexistent_codec_name"
+ search_function = mock.Mock()
+ codecs.register(search_function)
+ self.assertRaises(TypeError, codecs.lookup, name)
+ search_function.assert_called_with(name)
+ search_function.reset_mock()
+
+ codecs.unregister(search_function)
+ self.assertRaises(LookupError, codecs.lookup, name)
+ search_function.assert_not_called()
+
def test_lookup(self):
self.assertRaises(TypeError, codecs.lookup)
self.assertRaises(LookupError, codecs.lookup, "__spam__")