Pytest для функции в качестве аргумента

Я писал тест с помощью библиотеки pytest, где мне нужно проверить метод, который принимает другой метод в качестве аргумента.

class Certificate:
    def upload(self, upload_fn: Callable):
        try:
            if self.file_name:
                upload_fn(self.file_name)
                return

            raise ValueError("File name doesn't exist")
        except Exception as e:
            raise e

Теперь я создал фиктивную имитационную функцию, которую я передаю при вызове метода upload, но я не уверен, как мне убедиться, что upload_fn вызывается.

Я пытаюсь достичь чего-то подобного

def test_certificate_upload(certificate):
    certificate.upload(some_mock_fn)
    assert some_mock_fn.called_once() == True

Вы насмехаетесь :

def mock_get(self, *args):
    return "Result I want"


@mock.patch(upload_fn, side_effect=mock_get)
def test_certificate_upload(certificate):
    certificate.upload(some_mock_fn)
    assert function_name() == Return_data
Вернуться на верх