Я использую pytest и хочу использовать параметризованный прибор pytest. Если я не использую класс и не запускаю pytest, оба теста проходят успешно, но внутри тестового класса оба теста терпят неудачу, но я не могу понять, что не так.
Рабочий код:
import pytest
@pytest.fixture
def db_fixture():
def insert_records(data):
return data
db = insert_records
yield db
db = {} # reset fixture
def test_create_record_one(db_fixture):
result = db_fixture({"id": 1})
assert result == {"id": 1}
def test_create_record_two(db_fixture):
result = db_fixture({"id": 2})
assert result == {"id": 2}
Код, который не работает:
import pytest
import unittest
class TestSample(unittest.TestCase):
@staticmethod
@pytest.fixture
def db_fixture():
def insert_records(data):
return data
db = insert_records
yield db
db = {} # reset fixture
@staticmethod
def test_create_record_one(db_fixture):
result = db_fixture({"id": 1})
assert result == {"id": 1}
@staticmethod
def test_create_record_two(db_fixture):
result = db_fixture({"id": 2})
assert result == {"id": 2}
Ошибка:
TypeError: test_create_record_one() missing 1 required positional argument: 'db_fixture'