I am mocking out a method of a class and want to test the instance of the class that the method was called from to test that the creation part of my function works as expected.
In my particular case do_stuff tries to write bar_instance to an Excel File and I don't want that to happen i.e.
def create_instance(*args): return Bar(*args) class Bar(): def __init__(self, *args): self.args = args def do_stuff(self): pass def foo(*args): bar_instance = create_instance(*args) bar_instance.do_stuff() Then in a testing file
from unittest import TestCase from unittest.mock import patch from path.to.file import foo class TestFoo(TestCase): @patch('path.to.file.Bar.do_stuff') def test_foo(self, mock_do_stuff): test_args = [1] _ = foo(*test_args) # Test here the instance of `Bar` that `mock_do_stuff` was called from # Something like actual_args = list(bar_instance.args) self.assertEqual(test_args, actual_args) I put a break in the test function after foo(*test_args) is run but can't see any way from the mocked method of accessing the instance of Bar it was called from and am a bit stuck. I don't want to mock out Bar further up the code as I want to make sure the correct instance of Bar is being created.