Я нашел отличное решение. Попытка смоделировать весь класс Path оказалась очень запутанной, особенно потому, что я хотел, чтобы класс path выполнял все нормальное поведение, за исключением изменения диска. Что я обнаружил, так это включив autospec, теперь я мог утверждать вызов, включая аргумент «скрытого» self, например:
def test_correct_dir_was_made(self):
with patch('my.module.Path.mkdir', autospec=True) as mock_mkdir:
check_dirs()
test_path = Path('path', 'to', 'test')
mock_mkdir.assert_called_once_with(test_path)
Теперь я могу легко утверждать, что был бы создан правильный каталог. Может быть способ смоделировать весь класс Path с помощью autospec и достичь аналогичного результата, но кажется более разумным исправлять метод, который мне не нужен, и при этом иметь возможность делать утверждения, не имея прямого доступа к экземпляру, который вызвал метод.