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.
clan-cli
The clan-cli contains the command line interface
Hacking on the cli
We recommend setting up direnv to load the development with nix.
If you do not have it set up you can also use nix develop directly like this:
use flake .#clan-cli --builders ''
After you can use the local bin wrapper to test things in the cli:
./bin/clan
Run locally single-threaded for debugging
By default tests run in parallel using pytest-parallel.
pytest-parallel however breaks breakpoint(). To disable it, use this:
pytest -n0 -s
You can also run a single test like this:
pytest -n0 -s tests/test_secrets_cli.py::test_users
Run tests in nix container
Run all impure checks
nix run .#impure-checks
Run all checks
nix flake check