forked from aws/aws-xray-sdk-python
-
Notifications
You must be signed in to change notification settings - Fork 0
/
tox.ini
157 lines (101 loc) · 4.78 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
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
[tox]
skip_missing_interpreters = True
envlist =
py{27,34,35,36,37,38,39}-core
; Unavailable for python 2.7 & 3.4
py{35,36,37,38,39}-ext-aiobotocore
; Unavailable for python 2.7 & 3.4
py{35,36,37,38,39}-ext-aiohttp
py{27,34,35,36,37,38,39}-ext-botocore
py{27,34,35,36,37,38,39}-ext-bottle
; Django2 (2.2+) is only for python 3.5 +
py{35,36,37,38,39}-ext-django-2
; Django3 is only for python 3.6+
py{36,37,38,39}-ext-django-3
py{27,34,35,36,37,38,39}-ext-flask
py{27,34,35,36,37,38,39}-ext-flask_sqlalchemy
py{27,34,35,36,37,38,39}-ext-httplib
py{27,34,35,36,37,38,39}-ext-pg8000
py{27,34,35,36,37,38,39}-ext-psycopg2
py{27,34,35,36,37,38,39}-ext-pymysql
py{27,34,35,36,37,38,39}-ext-pynamodb
py{27,34,35,36,37,38,39}-ext-requests
py{27,34,35,36,37,38,39}-ext-sqlalchemy
py{27,34,35,36,37,38,39}-ext-sqlalchemy_core
py{27,34,35,36,37,38,39}-ext-sqlite3
[testenv]
passenv = TOXENV CI CODECOV_*
deps =
; Testing packages
pytest > 3.0.0
pytest-benchmark
coverage == 4.5.4
codecov
; Packages common to all test environments
wrapt
; Python 2.7 only deps
py{27}: enum34
py{27}: mock
py{27}: future
; Python 3.4 only deps
py34: typing >= 3.7.4.3
; Python 3.5+ only deps
; for some reason pytest-aiohttp is required for "core" tests
; TODO: find and replace by more direct dependency
py{35,36,37,38,39}: pytest-aiohttp
ext-aiobotocore: aiobotocore >= 0.10.0
ext-aiobotocore: pytest-aiohttp
ext-aiohttp: aiohttp >= 3.0.0
; Breaking change where the `test_client` fixture was renamed.
; Also, the stable version is only supported for Python 3.7+
ext-aiohttp: pytest-aiohttp < 1.0.0
ext-requests: requests
ext-bottle: bottle >= 0.10
ext-bottle: webtest
ext-flask: flask >= 0.10
ext-flask_sqlalchemy: flask >= 0.10
ext-flask_sqlalchemy: Flask-SQLAlchemy
ext-sqlalchemy: sqlalchemy
ext-sqlalchemy_core: sqlalchemy
ext-sqlalchemy_core: testing.postgresql
ext-sqlalchemy_core: psycopg2
ext-django-2: Django >=2.0,<3.0
ext-django-3: Django >=3.0,<4.0
ext-django: django-fake-model
ext-pynamodb: pynamodb >= 3.3.1
ext-psycopg2: psycopg2
ext-psycopg2: testing.postgresql
ext-pg8000: pg8000 <= 1.20.0
ext-pg8000: testing.postgresql
ext-pymysql: testing.mysqld
py{27,34,35}-ext-pymysql: pymysql < 1.0.0
py{36,37,38,39}-ext-pymysql: pymysql >= 1.0.0
setenv =
DJANGO_SETTINGS_MODULE = tests.ext.django.app.settings
AWS_SECRET_ACCESS_KEY = fake_key
AWS_ACCESS_KEY_ID=fake_id
commands =
coverage erase
; Async methods are only available for python 3.5+
py{27,34}-core: coverage run --append --source aws_xray_sdk -m pytest --ignore tests/ext --ignore tests/test_async_local_storage.py --ignore tests/test_async_recorder.py
py{35,36,37,38,39}-core: coverage run --append --source aws_xray_sdk -m pytest --ignore tests/ext
ext-aiobotocore: coverage run --append --source aws_xray_sdk -m pytest tests/ext/aiobotocore
ext-aiohttp: coverage run --append --source aws_xray_sdk -m pytest tests/ext/aiohttp
ext-botocore: coverage run --append --source aws_xray_sdk -m pytest tests/ext/botocore
ext-bottle: coverage run --append --source aws_xray_sdk -m pytest tests/ext/bottle
ext-django: coverage run --append --source aws_xray_sdk -m pytest tests/ext/django
ext-flask: coverage run --append --source aws_xray_sdk -m pytest tests/ext/flask
ext-flask_sqlalchemy: coverage run --append --source aws_xray_sdk -m pytest tests/ext/flask_sqlalchemy
ext-httplib: coverage run --append --source aws_xray_sdk -m pytest tests/ext/httplib
ext-pg8000: coverage run --append --source aws_xray_sdk -m pytest tests/ext/pg8000
ext-psycopg2: coverage run --append --source aws_xray_sdk -m pytest tests/ext/psycopg2
ext-pymysql: coverage run --append --source aws_xray_sdk -m pytest tests/ext/pymysql
ext-pynamodb: coverage run --append --source aws_xray_sdk -m pytest tests/ext/pynamodb
ext-requests: coverage run --append --source aws_xray_sdk -m pytest tests/ext/requests
ext-sqlalchemy: coverage run --append --source aws_xray_sdk -m pytest tests/ext/sqlalchemy
; sqlalchemy_core - 2.0 style execution is not supported for python 3.4 & 3.5
py{27,36,37,38,39}-ext-sqlalchemy_core: coverage run --append --source aws_xray_sdk -m pytest tests/ext/sqlalchemy_core
py{34,35}-ext-sqlalchemy_core: coverage run --append --source aws_xray_sdk -m pytest tests/ext/sqlalchemy_core --ignore tests/ext/sqlalchemy_core/test_sqlalchemy_core_2.py
ext-sqlite3: coverage run --append --source aws_xray_sdk -m pytest tests/ext/sqlite3
; TODO: add additional logic to combine coverage from "core" and "ext" test runs
; codecov