Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class HelloWorld(object):
- def say_it(self):
- return 'Hello I am Hello World'
- def i_call_hello_world(hw_obj):
- print 'here... check type: %s' %type(HelloWorld)
- if isinstance(hw_obj, HelloWorld):
- print hw_obj.say_it()
- from mock import patch, MagicMock
- import unittest
- class TestInstance(unittest.TestCase):
- @patch('__main__.HelloWorld', spec=HelloWorld)
- def test_mock(self,MK):
- print type(MK)
- MK.say_it.return_value = 'I am fake'
- v = i_call_hello_world(MK)
- print v
- if __name__ == '__main__':
- c = HelloWorld()
- i_call_hello_world(c)
- print isinstance(c, HelloWorld)
- unittest.main()
- here... check type: <type 'type'>
- Hello I am Hello World
- True
- <class 'mock.MagicMock'>
- here... check type: <class 'mock.MagicMock'>
- E
- ======================================================================
- ERROR: test_mock (__main__.TestInstance)
- ----------------------------------------------------------------------
- Traceback (most recent call last):
- File "/usr/local/lib/python2.7/dist-packages/mock.py", line 1224, in patched
- return func(*args, **keywargs)
- File "t.py", line 18, in test_mock
- v = i_call_hello_world(MK)
- File "t.py", line 7, in i_call_hello_world
- if isinstance(hw_obj, HelloWorld):
- TypeError: isinstance() arg 2 must be a class, type, or tuple of classes and types
- ----------------------------------------------------------------------
- Ran 1 test in 0.002s
- mock = Mock(spec=3)
- isinstance(mock, int)
- True
- if hasattr(hw_obj, 'say_it'):
- print hw_obj.say_it()
- def test_mock(self,MK):
- print type(MK)
- MK.__bases__ = (HelloWorld,)
- MK.say_it.return_value = 'I am fake'
- v = i_call_hello_world(MK)
- print v
- @patch('__main__.HelloWorld', spec=HelloWorld)
- def test_mock(self,MK):
- def test_mock(self):
- MK = MagicMock(spec=HelloWorld)
- print type(MK)
- MK.say_it.return_value = 'I am fake'
- v = i_call_hello_world(MK)
- print v
- <class 'mock.MagicMock'>
- here... check type: <type 'type'>
- I am fake
- None
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement