@patch decorator cannot set Provider
Question:
I tried patching a provider class by decorating a test method with @patch
:
class TestMyUnit(unittest.TestCase):
...
@patch(provider.Provider,autospec=True)
def test_init(self, mock_provider):
pass
However, when I run the test, I get the error:
*@patch(provider.Provider)*
*File "buildbdist.win32eggmock.py", line 1518, in patch*
*getter, attribute = _get_target(target)*
*File "buildbdist.win32eggmock.py", line 1367, in _get_target*
*target, attribute = target.rsplit('.', 1)*
*AttributeError: class Provider has no attribute 'rsplit'*
*ERROR: Module: test_my_unit could not be imported (file: C:devsrctest_my_unit.py).*
Any ideas?
Answers:
Use a string instead of the class.
@patch('provider.Provider', autospec=True)
def test_init(self, mock_provider):
pass
I tried patching a provider class by decorating a test method with @patch
:
class TestMyUnit(unittest.TestCase):
...
@patch(provider.Provider,autospec=True)
def test_init(self, mock_provider):
pass
However, when I run the test, I get the error:
*@patch(provider.Provider)*
*File "buildbdist.win32eggmock.py", line 1518, in patch*
*getter, attribute = _get_target(target)*
*File "buildbdist.win32eggmock.py", line 1367, in _get_target*
*target, attribute = target.rsplit('.', 1)*
*AttributeError: class Provider has no attribute 'rsplit'*
*ERROR: Module: test_my_unit could not be imported (file: C:devsrctest_my_unit.py).*
Any ideas?
Use a string instead of the class.
@patch('provider.Provider', autospec=True)
def test_init(self, mock_provider):
pass