mirror of
https://github.com/python/cpython.git
synced 2025-07-19 01:05:26 +00:00
Close #14857: fix regression in references to PEP 3135 implicit __class__ closure variable. Reopens issue #12370, but also updates unittest.mock to workaround that issue
This commit is contained in:
parent
5c6eba3a93
commit
0b43bcf528
7 changed files with 45 additions and 17 deletions
|
@ -39,6 +39,9 @@ if 'java' in sys.platform:
|
|||
|
||||
FILTER_DIR = True
|
||||
|
||||
# Workaround for issue #12370
|
||||
# Without this, the __class__ properties wouldn't be set correctly
|
||||
_safe_super = super
|
||||
|
||||
def _is_instance_mock(obj):
|
||||
# can't use isinstance on Mock objects because they override __class__
|
||||
|
@ -397,7 +400,7 @@ class NonCallableMock(Base):
|
|||
if kwargs:
|
||||
self.configure_mock(**kwargs)
|
||||
|
||||
super(NonCallableMock, self).__init__(
|
||||
_safe_super(NonCallableMock, self).__init__(
|
||||
spec, wraps, name, spec_set, parent,
|
||||
_spec_state
|
||||
)
|
||||
|
@ -820,7 +823,7 @@ class CallableMixin(Base):
|
|||
_spec_state=None, _new_name='', _new_parent=None, **kwargs):
|
||||
self.__dict__['_mock_return_value'] = return_value
|
||||
|
||||
super(CallableMixin, self).__init__(
|
||||
_safe_super(CallableMixin, self).__init__(
|
||||
spec, wraps, name, spec_set, parent,
|
||||
_spec_state, _new_name, _new_parent, **kwargs
|
||||
)
|
||||
|
@ -1690,7 +1693,7 @@ def _set_return_value(mock, method, name):
|
|||
|
||||
class MagicMixin(object):
|
||||
def __init__(self, *args, **kw):
|
||||
super(MagicMixin, self).__init__(*args, **kw)
|
||||
_safe_super(MagicMixin, self).__init__(*args, **kw)
|
||||
self._mock_set_magics()
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue