Вы можете передать request.param
от прибора к тестовым функциям. Вы можете добавить его к самому объекту my_data
.
class Test_create_fixture():
@pytest.fixture(scope="class", params=[0, 1])
def my_fixture(self, request):
"Call incident creation api."
# POST request to API using params value in request data, get data from API
my_data = {'abc': 123, 'severity': 0, 'req_param': request.param} # this data is from API
return my_data
def test_incident_severity(self, my_fixture):
assert my_fixture.get('severity', False) == my_fixture.get('req_param')
Обновление:
Поскольку вы настраиваете прибор, request.param
доступен только в функции прибора, гдеПараметризация определена.
Другая возможность состоит в том, чтобы ввести другой прибор, который параметризован и возвращает параметр. Текущий прибор и функции тестирования используют этот новый прибор для получения параметра.
class Test_create_fixture():
@pytest.fixture(scope="class", params=[0,1])
def req_param(self, request):
return request.param
@pytest.fixture(scope="class")
def my_fixture(self, req_param):
"Call incident creation api."
# POST request to API using req_param in request data, get data from API
my_data = {'abc': 123, 'severity': 0} # this data is from API
return my_data
def test_incident_severity(self, my_fixture, req_param):
assert my_fixture.get('severity', False) == req_param