Just use @patch()
to mock out get_complex_data_structure()
:
@patch('module_under_test.get_complex_data_structure')
def test_function_to_test(self, mocked_function):
foo_mock = mocked_function.return_value
When the test function then calls get_complex_data_structure()
a mock object is returned and stored in the local name foo
; the very same object that mocked_function.return_value
references in the above test; you can use that value to test if do_work()
got passed the right object, for example.