В настоящее время у меня есть такая настройка:
./
src/
mylib.py
tests/
__init__.py
conftest.py
test_mylib.py
mylib.py
содержит:
def add(x, y):
return x + y
conftest.py
содержит:
import attr
import pytest
@attr.s(slots=True)
class AdditionTestCase:
input1 = attr.ib()
input2 = attr.ib()
output_expected = attr.ib()
@pytest.fixture
def addition_test_case() -> AdditionTestCase:
# make up some data
return AdditionTestCase(1, 2, 3)
и test_mylib.py
содержит:
from mylib import add
from tests.conftest import AdditionTestCase
def test_add(addition_test_case: AdditionTestCase):
input1 = addition_test_case.input1
input2 = addition_test_case.input2
output_expected = addition_test_case.output_expected
output_actual = add(input1, input2)
assert output_actual == output_expected
Это проблематично по какой-либо причине? Есть ли лучший способ сделать это? Я мог бы переместить определение типа за пределы conftest.py
, если импорт из него считается плохой практикой.