I'm somewhat new to mocking for unit tests.

I have some code like this:

In foo/bar/baz.py I have 2 function I want to mock, one calls the other"
def function1_to_mock():
   .
   .
   .

def function2_to_mock():
   function1_to_mock()

In foo/bar/main.py I import 1 of these and call it"
from .baz import function2_to_mock

def some_function():
    function1_to_mock()
    .
    .
    .

I want to mock both function1_to_mock and function2_to_mock

In my test I do this:

def function1_to_mock(kid):
    return MOCKED_VALUE

@pytest.fixture(autouse=True)
def mock_dependencies():
    with patch(foo.bar.baz.function1_to_mock') as mock_function1_to_mock, \
         patch('foo.bar.main.function2_to_mock') as mock_function2_to_mock:
        mock_function2_to_mock.return_value = {
            'this': 'that
        }
        yield mock_function1_to_mock, mock_function2_to_mock

def test_main(mock_dependencies):
    some_function()

When some_function is called the real function1_to_mock is called instead
of my mock.

Can someone please let me know how to properly mock these 2 functions.

Thanks!
-- 
https://mail.python.org/mailman/listinfo/python-list

Reply via email to