bpo-32153: Add unit test for create_autospec with partial function returned in getattr (#10398)

* Add create_autospec with partial function returned in getattr

* Use self.assertFalse instead of assert

* Use different names and remove object
This commit is contained in:
Xtreak 2018-12-03 13:28:15 +05:30 committed by Chris Withers
parent 68b56d02ef
commit c667b094ae
1 changed files with 14 additions and 0 deletions

View File

@ -8,6 +8,7 @@ from unittest.mock import (
)
from datetime import datetime
from functools import partial
class SomeClass(object):
def one(self, a, b):
@ -871,6 +872,19 @@ class SpecSignatureTest(unittest.TestCase):
mocked.assert_called_once_with(4, 5, 6)
def test_autospec_getattr_partial_function(self):
# bpo-32153 : getattr returning partial functions without
# __name__ should not create AttributeError in create_autospec
class Foo:
def __getattr__(self, attribute):
return partial(lambda name: name, attribute)
proxy = Foo()
autospec = create_autospec(proxy)
self.assertFalse(hasattr(autospec, '__name__'))
class TestCallList(unittest.TestCase):
def test_args_list_contains_call_list(self):