diff options
author | Erlend Egeberg Aasland <erlend.aasland@innova.no> | 2021-05-27 06:43:52 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-05-27 06:43:52 (GMT) |
commit | fbff5387c3e1f3904420fa5a27738c6c5881305b (patch) | |
tree | a4e01083dde3afdde7306e55f70c1493fdc07b0a /Lib/test | |
parent | 3e7ee02327db13e4337374597cdc4458ecb9e3ad (diff) | |
download | cpython-fbff5387c3e1f3904420fa5a27738c6c5881305b.zip cpython-fbff5387c3e1f3904420fa5a27738c6c5881305b.tar.gz cpython-fbff5387c3e1f3904420fa5a27738c6c5881305b.tar.bz2 |
bpo-43988: Use check disallow instantiation helper (GH-26392)
Diffstat (limited to 'Lib/test')
-rw-r--r-- | Lib/test/support/__init__.py | 8 | ||||
-rw-r--r-- | Lib/test/test_array.py | 5 | ||||
-rw-r--r-- | Lib/test/test_curses.py | 5 | ||||
-rw-r--r-- | Lib/test/test_dbm_gnu.py | 3 | ||||
-rw-r--r-- | Lib/test/test_embed.py | 4 | ||||
-rw-r--r-- | Lib/test/test_functools.py | 5 | ||||
-rw-r--r-- | Lib/test/test_hashlib.py | 15 | ||||
-rw-r--r-- | Lib/test/test_hmac.py | 8 | ||||
-rw-r--r-- | Lib/test/test_re.py | 10 | ||||
-rw-r--r-- | Lib/test/test_select.py | 6 | ||||
-rw-r--r-- | Lib/test/test_ssl.py | 6 | ||||
-rw-r--r-- | Lib/test/test_threading.py | 3 | ||||
-rw-r--r-- | Lib/test/test_unicodedata.py | 4 | ||||
-rw-r--r-- | Lib/test/test_zlib.py | 6 |
14 files changed, 37 insertions, 51 deletions
diff --git a/Lib/test/support/__init__.py b/Lib/test/support/__init__.py index 8c6e554..42ca614 100644 --- a/Lib/test/support/__init__.py +++ b/Lib/test/support/__init__.py @@ -1991,5 +1991,11 @@ def check_disallow_instantiation(testcase, tp, *args, **kwds): See bpo-43916. """ - msg = f"cannot create '{tp.__module__}\.{tp.__name__}' instances" + mod = tp.__module__ + name = tp.__name__ + if mod != 'builtins': + qualname = f"{mod}.{name}" + else: + qualname = f"{name}" + msg = f"cannot create '{re.escape(qualname)}' instances" testcase.assertRaisesRegex(TypeError, msg, tp, *args, **kwds) diff --git a/Lib/test/test_array.py b/Lib/test/test_array.py index e7cddf2..18f78d5 100644 --- a/Lib/test/test_array.py +++ b/Lib/test/test_array.py @@ -43,8 +43,9 @@ class MiscTest(unittest.TestCase): @support.cpython_only def test_disallow_instantiation(self): my_array = array.array("I") - tp = type(iter(my_array)) - support.check_disallow_instantiation(self, tp, my_array) + support.check_disallow_instantiation( + self, type(iter(my_array)), my_array + ) @support.cpython_only def test_immutable(self): diff --git a/Lib/test/test_curses.py b/Lib/test/test_curses.py index 8bf48a6..d3c152c 100644 --- a/Lib/test/test_curses.py +++ b/Lib/test/test_curses.py @@ -6,7 +6,8 @@ import sys import tempfile import unittest -from test.support import requires, verbose, SaveSignals, cpython_only +from test.support import (requires, verbose, SaveSignals, cpython_only, + check_disallow_instantiation) from test.support.import_helper import import_module # Optionally test curses module. This currently requires that the @@ -1052,7 +1053,7 @@ class TestCurses(unittest.TestCase): # Ensure that the type disallows instantiation (bpo-43916) w = curses.newwin(10, 10) panel = curses.panel.new_panel(w) - self.assertRaises(TypeError, type(panel)) + check_disallow_instantiation(self, type(panel)) @requires_curses_func('is_term_resized') def test_is_term_resized(self): diff --git a/Lib/test/test_dbm_gnu.py b/Lib/test/test_dbm_gnu.py index b3e5572..f39b002 100644 --- a/Lib/test/test_dbm_gnu.py +++ b/Lib/test/test_dbm_gnu.py @@ -31,8 +31,7 @@ class TestGdbm(unittest.TestCase): def test_disallow_instantiation(self): # Ensure that the type disallows instantiation (bpo-43916) self.g = gdbm.open(filename, 'c') - tp = type(self.g) - self.assertRaises(TypeError, tp) + support.check_disallow_instantiation(self, type(self.g)) def test_key_methods(self): self.g = gdbm.open(filename, 'c') diff --git a/Lib/test/test_embed.py b/Lib/test/test_embed.py index f4a18fd..373fcf0 100644 --- a/Lib/test/test_embed.py +++ b/Lib/test/test_embed.py @@ -1549,9 +1549,7 @@ class StdPrinterTests(EmbeddingTestsMixin, unittest.TestCase): def test_disallow_instantiation(self): fd = self.get_stdout_fd() printer = self.create_printer(fd) - PyStdPrinter_Type = type(printer) - with self.assertRaises(TypeError): - PyStdPrinter_Type(fd) + support.check_disallow_instantiation(self, type(printer)) if __name__ == "__main__": diff --git a/Lib/test/test_functools.py b/Lib/test/test_functools.py index 3320ab7..78a8a5f 100644 --- a/Lib/test/test_functools.py +++ b/Lib/test/test_functools.py @@ -951,8 +951,9 @@ class TestCmpToKeyC(TestCmpToKey, unittest.TestCase): @support.cpython_only def test_disallow_instantiation(self): # Ensure that the type disallows instantiation (bpo-43916) - tp = type(c_functools.cmp_to_key(None)) - self.assertRaises(TypeError, tp) + support.check_disallow_instantiation( + self, type(c_functools.cmp_to_key(None)) + ) class TestCmpToKeyPy(TestCmpToKey, unittest.TestCase): diff --git a/Lib/test/test_hashlib.py b/Lib/test/test_hashlib.py index ad2ed69..e419b38 100644 --- a/Lib/test/test_hashlib.py +++ b/Lib/test/test_hashlib.py @@ -911,20 +911,13 @@ class HashLibTestCase(unittest.TestCase): for constructor in constructors: h = constructor() with self.subTest(constructor=constructor): - hash_type = type(h) - self.assertRaises(TypeError, hash_type) + support.check_disallow_instantiation(self, type(h)) @unittest.skipUnless(HASH is not None, 'need _hashlib') - def test_hash_disallow_instanciation(self): + def test_hash_disallow_instantiation(self): # internal types like _hashlib.HASH are not constructable - with self.assertRaisesRegex( - TypeError, "cannot create '_hashlib.HASH' instance" - ): - HASH() - with self.assertRaisesRegex( - TypeError, "cannot create '_hashlib.HASHXOF' instance" - ): - HASHXOF() + support.check_disallow_instantiation(self, HASH) + support.check_disallow_instantiation(self, HASHXOF) def test_readonly_types(self): for algorithm, constructors in self.constructors_to_test.items(): diff --git a/Lib/test/test_hmac.py b/Lib/test/test_hmac.py index 964acd0..7cf9973 100644 --- a/Lib/test/test_hmac.py +++ b/Lib/test/test_hmac.py @@ -6,7 +6,7 @@ import unittest import unittest.mock import warnings -from test.support import hashlib_helper +from test.support import hashlib_helper, check_disallow_instantiation from _operator import _compare_digest as operator_compare_digest @@ -439,11 +439,7 @@ class ConstructorTestCase(unittest.TestCase): @unittest.skipUnless(C_HMAC is not None, 'need _hashlib') def test_internal_types(self): # internal types like _hashlib.C_HMAC are not constructable - with self.assertRaisesRegex( - TypeError, "cannot create '_hashlib.HMAC' instance" - ): - C_HMAC() - + check_disallow_instantiation(self, C_HMAC) with self.assertRaisesRegex(TypeError, "immutable type"): C_HMAC.value = None diff --git a/Lib/test/test_re.py b/Lib/test/test_re.py index 0ed243d..18fa24a 100644 --- a/Lib/test/test_re.py +++ b/Lib/test/test_re.py @@ -1,5 +1,6 @@ from test.support import (gc_collect, bigmemtest, _2G, - cpython_only, captured_stdout) + cpython_only, captured_stdout, + check_disallow_instantiation) import locale import re import sre_compile @@ -2224,11 +2225,10 @@ class ImplementationTest(unittest.TestCase): @cpython_only def test_disallow_instantiation(self): # Ensure that the type disallows instantiation (bpo-43916) - self.assertRaises(TypeError, re.Match) - self.assertRaises(TypeError, re.Pattern) + check_disallow_instantiation(self, re.Match) + check_disallow_instantiation(self, re.Pattern) pat = re.compile("") - tp = type(pat.scanner("")) - self.assertRaises(TypeError, tp) + check_disallow_instantiation(self, type(pat.scanner(""))) class ExternalTests(unittest.TestCase): diff --git a/Lib/test/test_select.py b/Lib/test/test_select.py index 957a633..cf32cf2 100644 --- a/Lib/test/test_select.py +++ b/Lib/test/test_select.py @@ -88,12 +88,10 @@ class SelectTestCase(unittest.TestCase): self.assertEqual(select.select([], a, []), ([], a[:5], [])) def test_disallow_instantiation(self): - tp = type(select.poll()) - self.assertRaises(TypeError, tp) + support.check_disallow_instantiation(self, type(select.poll())) if hasattr(select, 'devpoll'): - tp = type(select.devpoll()) - self.assertRaises(TypeError, tp) + support.check_disallow_instantiation(self, type(select.devpoll())) def tearDownModule(): support.reap_children() diff --git a/Lib/test/test_ssl.py b/Lib/test/test_ssl.py index 00d5eff..0d38d77 100644 --- a/Lib/test/test_ssl.py +++ b/Lib/test/test_ssl.py @@ -358,11 +358,7 @@ class BasicSocketTests(unittest.TestCase): with self.subTest(ssl_type=ssl_type): with self.assertRaisesRegex(TypeError, "immutable type"): ssl_type.value = None - with self.assertRaisesRegex( - TypeError, - "cannot create '_ssl.Certificate' instances" - ): - _ssl.Certificate() + support.check_disallow_instantiation(self, _ssl.Certificate) def test_private_init(self): with self.assertRaisesRegex(TypeError, "public constructor"): diff --git a/Lib/test/test_threading.py b/Lib/test/test_threading.py index b563797..f648a8b 100644 --- a/Lib/test/test_threading.py +++ b/Lib/test/test_threading.py @@ -124,8 +124,7 @@ class ThreadTests(BaseTestCase): def test_disallow_instantiation(self): # Ensure that the type disallows instantiation (bpo-43916) lock = threading.Lock() - tp = type(lock) - self.assertRaises(TypeError, tp) + test.support.check_disallow_instantiation(self, type(lock)) # Create a bunch of threads, let each do some work, wait until all are # done. diff --git a/Lib/test/test_unicodedata.py b/Lib/test/test_unicodedata.py index c6bbe3f..213b3cf 100644 --- a/Lib/test/test_unicodedata.py +++ b/Lib/test/test_unicodedata.py @@ -12,7 +12,7 @@ import sys import unicodedata import unittest from test.support import (open_urlresource, requires_resource, script_helper, - cpython_only) + cpython_only, check_disallow_instantiation) class UnicodeMethodsTest(unittest.TestCase): @@ -229,7 +229,7 @@ class UnicodeMiscTest(UnicodeDatabaseTest): @cpython_only def test_disallow_instantiation(self): # Ensure that the type disallows instantiation (bpo-43916) - self.assertRaises(TypeError, unicodedata.UCD) + check_disallow_instantiation(self, unicodedata.UCD) def test_failed_import_during_compiling(self): # Issue 4367 diff --git a/Lib/test/test_zlib.py b/Lib/test/test_zlib.py index 694ef6e..cb06108 100644 --- a/Lib/test/test_zlib.py +++ b/Lib/test/test_zlib.py @@ -132,10 +132,8 @@ class ExceptionTestCase(unittest.TestCase): @support.cpython_only def test_disallow_instantiation(self): # Ensure that the type disallows instantiation (bpo-43916) - comp_type = type(zlib.compressobj()) - decomp_type = type(zlib.decompressobj()) - self.assertRaises(TypeError, comp_type) - self.assertRaises(TypeError, decomp_type) + support.check_disallow_instantiation(self, type(zlib.compressobj())) + support.check_disallow_instantiation(self, type(zlib.decompressobj())) class BaseCompressTestCase(object): |