testing/test_runner: make SetupState tests use a proper SetupState
Previously the tests (probably unintentionally) mixed a fresh SetupState and the generated item Session's SetupState, which led to some serious head scratching when prodding it a bit.
This commit is contained in:
parent
0d4121d24b
commit
c83d030028
|
@ -22,8 +22,8 @@ from _pytest.pytester import Pytester
|
||||||
|
|
||||||
class TestSetupState:
|
class TestSetupState:
|
||||||
def test_setup(self, pytester: Pytester) -> None:
|
def test_setup(self, pytester: Pytester) -> None:
|
||||||
ss = runner.SetupState()
|
|
||||||
item = pytester.getitem("def test_func(): pass")
|
item = pytester.getitem("def test_func(): pass")
|
||||||
|
ss = item.session._setupstate
|
||||||
values = [1]
|
values = [1]
|
||||||
ss.prepare(item)
|
ss.prepare(item)
|
||||||
ss.addfinalizer(values.pop, colitem=item)
|
ss.addfinalizer(values.pop, colitem=item)
|
||||||
|
@ -33,7 +33,7 @@ class TestSetupState:
|
||||||
|
|
||||||
def test_teardown_exact_stack_empty(self, pytester: Pytester) -> None:
|
def test_teardown_exact_stack_empty(self, pytester: Pytester) -> None:
|
||||||
item = pytester.getitem("def test_func(): pass")
|
item = pytester.getitem("def test_func(): pass")
|
||||||
ss = runner.SetupState()
|
ss = item.session._setupstate
|
||||||
ss.prepare(item)
|
ss.prepare(item)
|
||||||
ss.teardown_exact(None)
|
ss.teardown_exact(None)
|
||||||
ss.teardown_exact(None)
|
ss.teardown_exact(None)
|
||||||
|
@ -47,9 +47,11 @@ class TestSetupState:
|
||||||
def test_func(): pass
|
def test_func(): pass
|
||||||
"""
|
"""
|
||||||
)
|
)
|
||||||
ss = runner.SetupState()
|
ss = item.session._setupstate
|
||||||
pytest.raises(ValueError, lambda: ss.prepare(item))
|
with pytest.raises(ValueError):
|
||||||
pytest.raises(ValueError, lambda: ss.prepare(item))
|
ss.prepare(item)
|
||||||
|
with pytest.raises(ValueError):
|
||||||
|
ss.prepare(item)
|
||||||
|
|
||||||
def test_teardown_multiple_one_fails(self, pytester: Pytester) -> None:
|
def test_teardown_multiple_one_fails(self, pytester: Pytester) -> None:
|
||||||
r = []
|
r = []
|
||||||
|
@ -64,7 +66,7 @@ class TestSetupState:
|
||||||
r.append("fin3")
|
r.append("fin3")
|
||||||
|
|
||||||
item = pytester.getitem("def test_func(): pass")
|
item = pytester.getitem("def test_func(): pass")
|
||||||
ss = runner.SetupState()
|
ss = item.session._setupstate
|
||||||
ss.prepare(item)
|
ss.prepare(item)
|
||||||
ss.addfinalizer(fin1, item)
|
ss.addfinalizer(fin1, item)
|
||||||
ss.addfinalizer(fin2, item)
|
ss.addfinalizer(fin2, item)
|
||||||
|
@ -84,7 +86,7 @@ class TestSetupState:
|
||||||
raise Exception("oops2")
|
raise Exception("oops2")
|
||||||
|
|
||||||
item = pytester.getitem("def test_func(): pass")
|
item = pytester.getitem("def test_func(): pass")
|
||||||
ss = runner.SetupState()
|
ss = item.session._setupstate
|
||||||
ss.prepare(item)
|
ss.prepare(item)
|
||||||
ss.addfinalizer(fin1, item)
|
ss.addfinalizer(fin1, item)
|
||||||
ss.addfinalizer(fin2, item)
|
ss.addfinalizer(fin2, item)
|
||||||
|
@ -102,7 +104,7 @@ class TestSetupState:
|
||||||
module_teardown.append("fin_module")
|
module_teardown.append("fin_module")
|
||||||
|
|
||||||
item = pytester.getitem("def test_func(): pass")
|
item = pytester.getitem("def test_func(): pass")
|
||||||
ss = runner.SetupState()
|
ss = item.session._setupstate
|
||||||
ss.addfinalizer(fin_module, item.listchain()[-2])
|
ss.addfinalizer(fin_module, item.listchain()[-2])
|
||||||
ss.addfinalizer(fin_func, item)
|
ss.addfinalizer(fin_func, item)
|
||||||
ss.prepare(item)
|
ss.prepare(item)
|
||||||
|
|
Loading…
Reference in New Issue