Monitor: IRIS Embedded Development
Updated: 2021-11
Navigation
Quickstart
This repository is built and controlled using the Makefile in the root in order to homogenize our dev environments. Run make help
for more information on the available make targets.
Authentication
IRIS devices require certificate files to be mounted to /app/instance/certs
to run successfully. The certificate files must be located here at runtime and include the following:
- amqp.ini
- device.ini
Please contact christian@incuvers.com for these files.
Development Stack
Once the certs are added run the development stack:
make dev
The development stack consists of a rabbitmq broker, the iris microservice and an x11 tunnel using novnc
to view the monitor UI visit http://localhost:8080/vnc.html and connect to the server.
Unittest and Coverage
make unit
Unittest suite for the monitor
app is located here. This target uses unittest discovery to run the entire test suite. Alternatively you can execute a single test case by referencing the test case name:
make unit case=<NAME>
Where <NAME>
is the name of the test case by its filename schema: test_<NAME>.py
. For example the <NAME>
of test_cache.py
would be cache
.
Code Coverage can be performed on the entire unittest suite:
make coverage
or by referencing a specific test case module:
make coverage case=<NAME>
Where <NAME>
is the name of the test case by its filename schema: test_<NAME>.py
. For example the <NAME>
of test_cache.py
would be cache
. A cli code coverage report will be generated displaying the coverage per file as well as the lines which have not been covered. The coverage configuration for monitor can be found in the .coveragerc in root.
Codebase Linting
make lint
This target requires yamllint
(all .yaml
files), shellcheck
(binaries located under bin/
)and flake8
(python app codebase) to be installed and in your $PATH
. The yamllint
and flake8
configuration for monitor can be found in the .yamllint and .flake8 in root respectively.
Developers Guide
Welcome to the team. Please see the developers guide for Incuvers guidelines and best practices.
Development Team
David Sean (CTO) (david@incuvers.com)
Christian Sargusingh (christian@incuvers.com)