I'm looking to create a pytest structure where I can separate the fixtures from the tests completely. The reason for this separation is that I want to include the fixtures directory as an external item in subversion and share it between multiple projects.
tree of desired structure
project
| conftest.py
|
+---fixtures
| __init__.py
| conftest.py
| fixture_cifs.py
| fixture_ftp.py
| fixture_service.py
|
\---tests
| test_sometest1.py
| test_sometest2.py
|
\---configurations
sometest1.conf
sometest2.conf
I want to implement the functionality for each fixture in a separate file in order to avoid a single huge conftest.py. conftest.py would just include wrappers to return an instance of each fixture annotated with @pytest.fixture. There is no problem using a fixture together with a test when the conftest.py, fixture_*.py and test_*.py files are all in the same directory.
However, when the fixtures are separated in a subdirectory I get an error from pytest fixture 'cifs' not found, available fixtures: .... I haven't found any documentation explaining how to place fixtures outside of test_*.py or the conftest.py adjacent to test_*.py, but nothing to indicate that this shouldn't work either.
How can I place fixtures in their own subdirectory when using pytest?