Description
Hello.
I'm using pytest==5.4.1.
I have conftest.py file in root of the directory with content like this:
pytest_plugins = ['fixtures.configuration', 'fixtures.global']
my fixtures are placed in separate folder 'fixtures'.
When I run some fixture, which is defined in fixtures.configuration with scope "package" it's executed as session fixture. So I suppose this package scope realted to where fixtures are placed, than to where they're called. Is it expected behavior? if I want to use pytest_plugins in conftest.py this looks a bit inconvenient.
This can be tested by.
Creating conftest.py in root of directory with content:
pytest_plugins = ['fixtures.myfixtures']
Creating fixtures folder with myfxitures.py file inside of it with content.
@pytest.fixture(scope="package")
def hello_package():
print('hello')
yield
print('world')
Creating package 'some' with two packages inside: 'hello', 'world'.
with files inside with content like
hello_test.py
def test_hello(hello_package):
pass
world_test.py
def test_world(hello_package):
pass
running: pytest -sv some
result:
collected 2 items
some/hello/hello_test.py::test_hello setup
PASSED
some/hworld/world_test.py::test_world PASSEDteardown
expected result:
collected 2 items
some/hello/hello_test.py::test_hello setup
PASSEDteardown
some/hworld/world_test.py::test_world setup
PASSEDteardown