Development commands

Unittesting

Before running tests from console, make sure your local or installed cesar module is available in the PATH. You can acomplish this by using poetry. Be aware that you have to repeat this step when you changed files in your IDE. I recommend to use your IDE support for running tests during development and just use the command line if you want to check the coverage. Anyway, to add cesar as a lib to your current environment do

poetry install

Then, to run your test against this installed version:

pytest tests

Checking code coverage

pytest tests --cov
coverage html

The second command creates a nice report to folder htmlcov, which you can explore in any browser.

Static code checker / Linting

flake8

Configuration resides in .flake8

Typing check

The type hints are not checked during runtime, however you can do a consistency check with mypy

mypy src

Code formatting

Format your source files automatically with black (after doing this, most static checker errors thrown by flake8 should disappear) To format all files in src folder, run:

black src

A few configuration settings for black are set in pyproject.toml

Doku generation

To generate api doc structure, only run on major changes

sphinx-apidoc -efM -o docs/source/api src/cesarp

To generate the docu:

sphinx-build docs/source docs/html

UML diagrams

The UML Diagrams were created with UMLet, which you can download from https://www.umlet.com/