48 lines
1.5 KiB
Markdown
48 lines
1.5 KiB
Markdown
# Development environment setup
|
|
|
|
You should have the following installed
|
|
|
|
- docker
|
|
- python (version >= 3.0)
|
|
- pipenv
|
|
- vagrant
|
|
|
|
Initialize your pipenv
|
|
|
|
pipenv install --skip-lock
|
|
|
|
# Running the tests
|
|
|
|
## Normal tests
|
|
tox and Pytest is used for testing. You can can run test by running the following from
|
|
the root of the project
|
|
|
|
tox
|
|
|
|
## Isolated tests
|
|
Sometimes test cases can interact with Docker on the development machine making
|
|
it hard to determine the cause of a test success or failure. To address this
|
|
you can use the `run_isolated_tests.sh` script to run pytest inside a
|
|
environment isolated from any network. Additionally this isolated test will
|
|
run the unit tests on multiple versions of python so you can validate your
|
|
changes are not python version specific.
|
|
|
|
./run_isolated_tests.sh
|
|
|
|
## Package tests
|
|
These test verify that, after created, the package can be installed and
|
|
runs successfully(not just passes unit tests). To do this a test environment is set up in vagrant.
|
|
|
|
./run_package_tests.sh
|
|
|
|
# Coverage report
|
|
The aim is to keep coverage above 90% on the actual checks
|
|
(check_docker.py and check_swarm.py). To generate a coverage report.
|
|
|
|
pipenv run py.test --cov=check_docker/
|
|
|
|
# Tips
|
|
When jumping back and forth between normal and isolated tests the `__pycache__`
|
|
directories can fall out fo sync with your execution environment. When this
|
|
happens you see errors like `ImportError: No module named 'check_docker'. The
|
|
fix is simple, just remove all the `__pycache__` directories in the project. |