A case with a fixture use both as an autouse and explititly was raised. This case sounds too narrow to add to documentation (and could be misleading for people learning pytest with explicitely using an autouse fixture). At the same time there was no documentation on the autouse vs regular fixture order, therefore this commit adds such an information. Code sample grew and it was extracted to the file.
39 lines
511 B
Python
39 lines
511 B
Python
import pytest
|
|
|
|
# fixtures documentation order example
|
|
order = []
|
|
|
|
|
|
@pytest.fixture(scope="session")
|
|
def s1():
|
|
order.append("s1")
|
|
|
|
|
|
@pytest.fixture(scope="module")
|
|
def m1():
|
|
order.append("m1")
|
|
|
|
|
|
@pytest.fixture
|
|
def f1(f3):
|
|
order.append("f1")
|
|
|
|
|
|
@pytest.fixture
|
|
def f3():
|
|
order.append("f3")
|
|
|
|
|
|
@pytest.fixture(autouse=True)
|
|
def a1():
|
|
order.append("a1")
|
|
|
|
|
|
@pytest.fixture
|
|
def f2():
|
|
order.append("f2")
|
|
|
|
|
|
def test_order(f1, m1, f2, s1):
|
|
assert order == ["s1", "m1", "a1", "f3", "f1", "f2"]
|