diff options
author | Michael Foord <michael@voidspace.org.uk> | 2012-03-14 21:40:22 (GMT) |
---|---|---|
committer | Michael Foord <michael@voidspace.org.uk> | 2012-03-14 21:40:22 (GMT) |
commit | a74b3aa0cce004bfa8a8be04519667a70d5651b0 (patch) | |
tree | a4dfed6da54b06136388a4047f63cdfbc39884c4 /Lib/unittest | |
parent | e7c8fdee18494238cc93eb895001398ceb7d12fb (diff) | |
download | cpython-a74b3aa0cce004bfa8a8be04519667a70d5651b0.zip cpython-a74b3aa0cce004bfa8a8be04519667a70d5651b0.tar.gz cpython-a74b3aa0cce004bfa8a8be04519667a70d5651b0.tar.bz2 |
Remove more Python 2 compatibility cruft from unittest.mock
Diffstat (limited to 'Lib/unittest')
-rw-r--r-- | Lib/unittest/mock.py | 15 | ||||
-rw-r--r-- | Lib/unittest/test/testmock/testcallable.py | 16 |
2 files changed, 6 insertions, 25 deletions
diff --git a/Lib/unittest/mock.py b/Lib/unittest/mock.py index 89fe232..f014c51 100644 --- a/Lib/unittest/mock.py +++ b/Lib/unittest/mock.py @@ -143,13 +143,10 @@ def _instance_callable(obj): # already an instance return getattr(obj, '__call__', None) is not None - klass = obj - # uses __bases__ instead of __mro__ so that we work with old style classes - if klass.__dict__.get('__call__') is not None: - return True - - for base in klass.__bases__: - if _instance_callable(base): + # *could* be broken by a class overriding __mro__ or __dict__ via + # a metaclass + for base in (obj,) + obj.__mro__: + if base.__dict__.get('__call__') is not None: return True return False @@ -2064,11 +2061,7 @@ def _must_skip(spec, entry, is_type): if entry in getattr(spec, '__dict__', {}): # instance attribute - shouldn't skip return False - # can't use type because of old style classes spec = spec.__class__ - if not hasattr(spec, '__mro__'): - # old style class: can't have descriptors anyway - return is_type for klass in spec.__mro__: result = klass.__dict__.get(entry, DEFAULT) diff --git a/Lib/unittest/test/testmock/testcallable.py b/Lib/unittest/test/testmock/testcallable.py index bdc42fa..7b2dd00 100644 --- a/Lib/unittest/test/testmock/testcallable.py +++ b/Lib/unittest/test/testmock/testcallable.py @@ -107,19 +107,9 @@ class TestCallable(unittest.TestCase): class Multi(SomeClass, Sub): pass - class OldStyle: - def __call__(self): - pass - - class OldStyleSub(OldStyle): - pass - for arg in 'spec', 'spec_set': - for Klass in CallableX, Sub, Multi, OldStyle, OldStyleSub: - patcher = patch('%s.X' % __name__, **{arg: Klass}) - mock = patcher.start() - - try: + for Klass in CallableX, Sub, Multi: + with patch('%s.X' % __name__, **{arg: Klass}) as mock: instance = mock() mock.assert_called_once_with() @@ -136,8 +126,6 @@ class TestCallable(unittest.TestCase): result.assert_called_once_with(3, 2, 1) result.foo(3, 2, 1) result.foo.assert_called_once_with(3, 2, 1) - finally: - patcher.stop() def test_create_autopsec(self): |