blob: 650641fdfcfbd0b29e6339e37642781689ce4ec6 [file] [log] [blame]
Borjan Tchakaloff7a70e552018-08-02 16:26:34 +02001# tox (https://tox.readthedocs.io/) is a tool for running tests
2# in multiple virtualenvs. This configuration file will run the
3# test suite on all supported python versions. To use it, "pip install tox"
4# and then run "tox" from this directory.
5
6[tox]
Mitja Nikolausa054b832018-08-21 10:42:19 +02007envlist = py36
Borjan Tchakaloff7a70e552018-08-02 16:26:34 +02008# There is no proper way to install the app for now (i.e. setup.py)
9skipsdist = True
10
11[testenv]
12deps =
13 -rrequirements.txt
14 psycopg2
15commands =
16 python manage.py test
17
18# Linters
19[testenv:flake8]
20deps =
21 -rrequirements-dev-flake8.txt
22commands =
23 flake8 crashreports crashreport_stats hiccup
24
25[testenv:pylint]
26deps =
27 -rrequirements.txt
28 -rrequirements-dev-pylint.txt
29commands =
30 pylint crashreports crashreport_stats hiccup
31
32[testenv:linters]
33deps =
34 {[testenv:flake8]deps}
35 {[testenv:pylint]deps}
36commands =
37 {[testenv:flake8]commands}
38 {[testenv:pylint]commands}
39
Mitja Nikolausa054b832018-08-21 10:42:19 +020040# Git pre-commit hooks: Run formatter and linters
41[testenv:pre-commit-hooks]
42deps =
43 -rrequirements-dev.txt
44passenv = GIT_INDEX_FILE
45commands =
46 {toxinidir}/tools/hooks/pre-commit.d/pre-commit-black.sh
47 python {toxinidir}/tools/hooks/pre-commit.d/pre-commit-flake8.py
48
Borjan Tchakaloff7a70e552018-08-02 16:26:34 +020049# Flake8 configuration
50[flake8]
51format = ${cyan}%(path)s${reset}:${yellow_bold}%(row)d${reset}:${green_bold}%(col)d${reset}: ${red_bold}%(code)s${reset} %(text)s
Borjan Tchakaloff7a70e552018-08-02 16:26:34 +020052max-complexity = 10
Mitja Nikolaus959e2d62018-08-21 17:51:09 +020053max-line-length = 80
Mitja Nikolausd1995062018-07-30 14:10:27 +020054
55# Documentation
56# Shared commands for both docs options
57[docs]
58swagger_version = 1.3.3
59commands =
60 python manage.py generate_swagger --overwrite documentation/hiccup-api.json
61 wget -nc https://jcenter.bintray.com/io/github/swagger2markup/swagger2markup-cli/{[docs]swagger_version}/swagger2markup-cli-{[docs]swagger_version}.jar
62whitelist_externals=
63 java
64 wget
65
66# Create markdown docs
67[testenv:docs]
68deps = {[testenv]deps}
69commands =
70 {[docs]commands}
71 java -jar swagger2markup-cli-{[docs]swagger_version}.jar convert \
72 -f documentation/api-endpoints \
73 -i documentation/hiccup-api.json \
74 -c documentation/swagger.properties
75whitelist_externals = {[docs]whitelist_externals}
76
77# Create HTML docs
78[testenv:docs-html]
79deps = {[testenv]deps}
80commands =
81 {[docs]commands}
82 java -jar swagger2markup-cli-{[docs]swagger_version}.jar convert \
83 -f documentation/api-endpoints \
84 -i documentation/hiccup-api.json \
85 -c documentation/swagger-asciidoc.properties
86 asciidoctor documentation/api-endpoints.adoc
87whitelist_externals =
88 {[docs]whitelist_externals}
89 asciidoctor