O pacote unittest.mock
nos fornece inumeras possíbilidades, uma delas é fazer um mock de uma função específica de determinado objeto, deixando-o bem explicito.
Para isso vamos utilizar o recurso patch.object
descrito em sua documentação: https://docs.python.org/3/library/unittest.mock.html#patch-object
@patch.object(SomeClass, 'class_method')
def test(mock_method):
SomeClass.class_method(3)
mock_method.assert_called_with(3)
Podemos também dizer qual o comportamento esperado, ou o que deve ser retornado, apenas adicionando o argumento return_value
:
@patch.object(SomeClass, 'class_method', return_value=True)
....
Python – Fazendo mock de um método de um Objeto