Методы pytest Monkeypatch с возвращаемыми значениями из параметризованного методаPython

Программы на Python
Anonymous
Методы pytest Monkeypatch с возвращаемыми значениями из параметризованного метода

Сообщение Anonymous »

Я работаю над написанием нескольких тестов для приложения Python с помощью платформы pytest. У меня возникла проблема в одном из тестов, и я не уверен, как она работает.

пример:

Код: Выделить всё

@pytest.mark.parametrize("result, status, xml_err, xml_status",[
("PASS",True,False,"XML_ERROR"),
("Validation error", False, False, "XML_ERROR")
])
def test_xml_build_neg(self, monkeypatch,result, status, xml_err, xml_status):

def validate(self):
return status, result, {}

def transform(self, v_dict):
return "", 50.0, xml_status, xml_err

monkeypatch.setattr(DataValidator, "validate", validate)
monkeypatch.setattr(XMLTransformer, "transform", transform)

o_result, o_status, o_xml_err, o_xml_status= XMLOutputBuilder().build(ExtractionResult(), "test", b"test")

assert o_result == result, "Validation results not matching"
assert o_status == status, "Validation Status not matching"
.....
Я выполнил обезьяний патч для некоторых методов в моем XMLOutputBuilder, чтобы протестировать некоторые сценарии ошибок. Я ожидал, что мои фиктивные методы будут возвращать значения на основе входящих параметров, но этого не произошло. Я понимаю, что такое поведение связано с тем, что макеты и приспособления загружаются только один раз, и его нельзя изменить в дальнейшем (поправьте меня, если я ошибаюсь).

Есть ли какие-либо другие способы заставить этот сценарий работать? Или мне придется писать отдельные методы тестирования для параметров?

Подробнее здесь: https://stackoverflow.com/questions/606 ... zed-method

Вернуться в «Python»