Move the `tests` folder to `clan_cli/tests`. As we now want part of our tests to live next to the functions that are tested - tests that are not in the `/tests` module also need access to the configured test fixtures that are exposed by the `pytest_plugins` declaration. The following folder structure doesn't support this model: ``` ├── clan_cli │ ├── api │ │ └── api_init_test.py ├── tests/ │ ├── conftest.py │ └── ... ``` Here `api_init_test.py` even when importing the test functions will not have the fixtures configured. There is a way to configure python to import the fixtures from another [`project/module`](https://docs.pytest.org/en/stable/how-to/fixtures.html#using-fixtures-from-other-projects), but this seems to *generally* be discouraged. So moving the `conftest.py` to the toplevel and the `/tests` folder into the toplevel seems to be a sensible choice choice.
32 lines
875 B
Python
32 lines
875 B
Python
import pytest
|
|
|
|
from clan_cli.custom_logger import setup_logging
|
|
|
|
# collect_ignore = ["./nixpkgs"]
|
|
|
|
pytest_plugins = [
|
|
"clan_cli.tests.temporary_dir",
|
|
"clan_cli.tests.root",
|
|
"clan_cli.tests.age_keys",
|
|
"clan_cli.tests.gpg_keys",
|
|
"clan_cli.tests.git_repo",
|
|
"clan_cli.tests.sshd",
|
|
"clan_cli.tests.command",
|
|
"clan_cli.tests.ports",
|
|
"clan_cli.tests.hosts",
|
|
"clan_cli.tests.runtime",
|
|
"clan_cli.tests.fixtures_flakes",
|
|
"clan_cli.tests.stdout",
|
|
"clan_cli.tests.nix_config",
|
|
]
|
|
|
|
|
|
# Executed on pytest session start
|
|
def pytest_sessionstart(session: pytest.Session) -> None:
|
|
# This function will be called once at the beginning of the test session
|
|
print("Starting pytest session")
|
|
# You can access the session config, items, testsfailed, etc.
|
|
print(f"Session config: {session.config}")
|
|
|
|
setup_logging(level="DEBUG")
|