From: Nikita Sobolev Date: Sat, 7 Jan 2023 10:25:05 +0000 (+0300) Subject: gh-100690: [mock] hide `ATTRIB_DENY_LIST` and make it immutable (#100819) X-Git-Tag: v3.12.0a4~37 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=a109454e828ce2d9bde15dea78405f8ffee653ec;p=thirdparty%2FPython%2Fcpython.git gh-100690: [mock] hide `ATTRIB_DENY_LIST` and make it immutable (#100819) --- diff --git a/Lib/unittest/mock.py b/Lib/unittest/mock.py index 78827d61b69d..b3c0e28c698b 100644 --- a/Lib/unittest/mock.py +++ b/Lib/unittest/mock.py @@ -653,7 +653,7 @@ class NonCallableMock(Base): elif _is_magic(name): raise AttributeError(name) if not self._mock_unsafe and (not self._mock_methods or name not in self._mock_methods): - if name.startswith(('assert', 'assret', 'asert', 'aseert', 'assrt')) or name in ATTRIB_DENY_LIST: + if name.startswith(('assert', 'assret', 'asert', 'aseert', 'assrt')) or name in _ATTRIB_DENY_LIST: raise AttributeError( f"{name!r} is not a valid assertion. Use a spec " f"for the mock if {name!r} is meant to be an attribute.") @@ -1063,7 +1063,11 @@ class NonCallableMock(Base): # Denylist for forbidden attribute names in safe mode -ATTRIB_DENY_LIST = {name.removeprefix("assert_") for name in dir(NonCallableMock) if name.startswith("assert_")} +_ATTRIB_DENY_LIST = frozenset({ + name.removeprefix("assert_") + for name in dir(NonCallableMock) + if name.startswith("assert_") +}) class _AnyComparer(list):