@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?

Asked By: bavaza

||

Answers:

Use a string instead of the class.

@patch('provider.Provider', autospec=True)
def test_init(self, mock_provider):
    pass
Answered By: XORcist
Categories: questions Tags: , ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.