I’ve got two competing approaches for running some tests which use some object generated by my library. I want to run the same tests on two slightly different objects like this:
<code>def unit_basis_3d():
return linalg.Basis(...)
def float_basis_3d():
return linalg.Basis(...)
@pytest.fixture(scope="class")
def req_basis(request):
request.getfixturevalue(request)
@pytest.mark.parametrize("req_basis", [unit_basis_3d, float_basis_3d])
class TestCoordinateVector:
def test_zeros(self, req_basis):
#assert req_basis()
class TestCoord2:
@pytest.fixture()
def unit_basis_3d(self):
return linalg.Basis(...)
@pytest.fixture()
def float_basis_3d(self):
return linalg.Basis(...)
@pytest.mark.parametrize("basis", ["float_basis_3d", "unit_basis_3d"])
def test_zeros(self, request, basis):
request.getfixturevalue(basis)
#assert etc
</code>
<code>def unit_basis_3d():
return linalg.Basis(...)
def float_basis_3d():
return linalg.Basis(...)
@pytest.fixture(scope="class")
def req_basis(request):
request.getfixturevalue(request)
@pytest.mark.parametrize("req_basis", [unit_basis_3d, float_basis_3d])
class TestCoordinateVector:
def test_zeros(self, req_basis):
#assert req_basis()
class TestCoord2:
@pytest.fixture()
def unit_basis_3d(self):
return linalg.Basis(...)
@pytest.fixture()
def float_basis_3d(self):
return linalg.Basis(...)
@pytest.mark.parametrize("basis", ["float_basis_3d", "unit_basis_3d"])
def test_zeros(self, request, basis):
request.getfixturevalue(basis)
#assert etc
</code>
def unit_basis_3d():
return linalg.Basis(...)
def float_basis_3d():
return linalg.Basis(...)
@pytest.fixture(scope="class")
def req_basis(request):
request.getfixturevalue(request)
@pytest.mark.parametrize("req_basis", [unit_basis_3d, float_basis_3d])
class TestCoordinateVector:
def test_zeros(self, req_basis):
#assert req_basis()
class TestCoord2:
@pytest.fixture()
def unit_basis_3d(self):
return linalg.Basis(...)
@pytest.fixture()
def float_basis_3d(self):
return linalg.Basis(...)
@pytest.mark.parametrize("basis", ["float_basis_3d", "unit_basis_3d"])
def test_zeros(self, request, basis):
request.getfixturevalue(basis)
#assert etc
and then I’m using the provided class and testing the outputs of some methods in the assert blocks, but this isn’t relevant when talking about the format of the tests. Is either of these two testing approaches preferable?