# tox (https://tox.readthedocs.io/) is a tool for running tests # in multiple virtualenvs. This configuration file will run the # test suite on all supported python versions. To use it, "pip install tox" # and then run "tox" from this directory. [tox] envlist = py39 [flake8] # E501 Line length. Ignored here. But still: please do not abuse the freedom # W291 trailing whitespace ignore = E501, W291 exclude = .git, vm_images, venv, vagrant_templates, vagrantboxes, .vagrant systems, real_machines_to_build_vagrant_boxes_from, __pycache__, .idea, htmlcov, .tox, max-complexity = 10 [testenv] deps = -r requirements.txt flake8 safety bandit pylint argcomplete mypy commands = # python -m unittest discover -s tests coverage run --source=app -m unittest discover -s tests # Gotta ignore some flake8 warnings, because they are maskerading real issues. # Ignoring: # C901 complex code. Reduce complexitiy. But this thing is over-reacting # E501: line too long. Please: Still keep it short. But 80 chars is just incredibly short nowadays # W601: TODO: has_key in config_verifier.py should be replaced by an iterator flake8 --ignore C901,E501,W601 # Check if dependencies are vulnerable safety check -r requirements.txt # Check for common vulnerabilities bandit -ll -r app/ plugins/ *.py # pylint check (linter, basic checks only) pylint --rcfile=pylint.rc app/ plugins/base/ caldera_control.py doc_generator.py experiment_control.py machine_control.py metasploit_control.py plugin_manager.py # Own plugin checker python3 ./plugin_manager.py check # mypy checks (type checker) mypy --strict-optional app/ plugins/base/