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