-
Notifications
You must be signed in to change notification settings - Fork 8
/
tox.ini
140 lines (127 loc) · 4.21 KB
/
tox.ini
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
[tox]
envlist = py,typing,lint,docs,docs-linkcheck
isolated_build = True
[docker:postgres]
image = postgres:latest
environment =
POSTGRES_PASSWORD=INSECURE-PASSWORD
POSTGRES_USER=gafaelfawr
POSTGRES_DB=gafaelfawr
# The healthcheck ensures that tox-docker won't run tests until the
# container is up and the command finishes with exit code 0 (success)
healthcheck_cmd = PGPASSWORD=$POSTGRES_PASSWORD psql \
--user=$POSTGRES_USER --dbname=$POSTGRES_DB \
--host=127.0.0.1 --quiet --no-align --tuples-only \
-1 --command="SELECT 1"
healthcheck_timeout = 1
healthcheck_retries = 30
healthcheck_interval = 1
healthcheck_start_period = 1
volumes =
bind:ro:{toxinidir}/tests/support/postgresql.conf:/etc/postgresql/postgresql.conf
[docker:redis]
image = redis:latest
healthcheck_cmd =
redis-cli ping
healthcheck_timeout = 1
healthcheck_retries = 30
healthcheck_interval = 1
healthcheck_start_period = 1
[testenv]
description = Run pytest against {envname}
deps =
-r{toxinidir}/requirements/main.txt
-r{toxinidir}/requirements/dev.txt
setenv =
GAFAELFAWR_ALEMBIC_CONFIG_PATH = {toxinidir}/alembic.ini
GAFAELFAWR_DATABASE_URL = postgresql://gafaelfawr@localhost/gafaelfawr
GAFAELFAWR_DATABASE_PASSWORD = INSECURE-PASSWORD
GAFAELFAWR_REDIS_URL = redis://localhost/0
GAFAELFAWR_UI_PATH = {toxinidir}/ui/public
[testenv:alembic]
description = Run Alembic against a test database
commands =
alembic {posargs}
setenv =
GAFAELFAWR_BASE_URL = https://foo.example.com
GAFAELFAWR_BASE_INTERNAL_URL = http://gafaelfawr.gafaelfawr.svc.cluster.local:8080
GAFAELFAWR_CONFIG_PATH = {toxinidir}/alembic/gafaelfawr.yaml
GAFAELFAWR_DATABASE_URL = postgresql://gafaelfawr@localhost/gafaelfawr
GAFAELFAWR_DATABASE_PASSWORD = INSECURE
GAFAELFAWR_REDIS_URL = redis://localhost/0
[testenv:coverage-report]
description = Compile coverage from each test run.
skip_install = true
deps = coverage[toml]>=5.0.2
depends =
py-coverage
commands = coverage report
[testenv:docs]
description = Build documentation (HTML) with Sphinx
allowlist_externals =
rm
commands =
rm -rf docs/dev/internals
# https://github.com/sphinx-contrib/redoc/issues/48
rm -f docs/_build/html/_static/redoc.js
sphinx-build -W --keep-going -n -T -b html -d {envtmpdir}/doctrees docs docs/_build/html
[testenv:docs-linkcheck]
description = Check links in the documentation
allowlist_externals =
make
rm
commands =
# https://github.com/sphinx-contrib/redoc/issues/48
rm -f docs/_build/linkcheck/_static/redoc.js
make linkcheck
[testenv:gafaelfawr]
description = Run Gafaelfawr command-line tool against a test database
commands =
gafaelfawr {posargs}
setenv =
GAFAELFAWR_ALEMBIC_CONFIG_PATH = {toxinidir}/alembic.ini
GAFAELFAWR_BASE_URL = https://foo.example.com
GAFAELFAWR_BASE_INTERNAL_URL = http://gafaelfawr.gafaelfawr.svc.cluster.local:8080
GAFAELFAWR_CONFIG_PATH = {toxinidir}/alembic/gafaelfawr.yaml
GAFAELFAWR_DATABASE_URL = postgresql://gafaelfawr@localhost/gafaelfawr
GAFAELFAWR_DATABASE_PASSWORD = INSECURE
GAFAELFAWR_REDIS_URL = redis://localhost/0
GAFAELFAWR_REDIS_PASSWORD = TOTALLY-INSECURE-test-password
[testenv:lint]
description = Lint codebase by running pre-commit
skip_install = true
deps =
pre-commit
commands = pre-commit run --all-files
[testenv:py]
description = Run pytest with Docker prerequisites
docker =
postgres
redis
commands =
pytest -vv {posargs}
[testenv:py-coverage]
description = Run pytest with Docker prerequisites and coverage analysis
docker =
postgres
redis
commands =
pytest -vv --cov=gafaelfawr --cov-branch --cov-report= {posargs}
[testenv:py-full]
description = Run pytest with coverage and Kubernetes
docker =
postgres
redis
commands =
pytest -vv --cov=gafaelfawr --cov-branch --cov-report= {posargs}
setenv =
GAFAELFAWR_ALEMBIC_CONFIG_PATH = {toxinidir}/alembic.ini
GAFAELFAWR_DATABASE_URL = postgresql://gafaelfawr@localhost/gafaelfawr
GAFAELFAWR_DATABASE_PASSWORD = INSECURE-PASSWORD
GAFAELFAWR_REDIS_URL = redis://localhost/0
GAFAELFAWR_UI_PATH = {toxinidir}/ui/public
TEST_KUBERNETES = 1
[testenv:typing]
description = Run mypy
commands =
mypy alembic src/gafaelfawr tests