1616; framework_aiohttp-aiohttp01: aiohttp<2
1717; framework_aiohttp-aiohttp0202: aiohttp<2.3
1818; 3. Python version required. Uses the standard tox definitions. (https://tox.readthedocs.io/en/latest/config.html#tox-environments)
19- ; Examples: py27,py36, py37,py38,py39,pypy,pypy37
19+ ; Examples: py27,py37,py38,py39,pypy,pypy37
2020; 4. Library and version (Optional). Used when testing multiple versions of the library, and may be omitted when only testing a single version.
2121; Versions should be specified with 2 digits per version number, so <3 becomes 02 and <3.5 becomes 0304. latest and master are also acceptable versions.
2222; Examples: uvicorn03, CherryPy0302, uvicornlatest
4242[tox]
4343setupdir = {toxinidir}
4444envlist =
45- python-adapter_cheroot-{py27,py36,py37,py38,py39,py310},
46- python-adapter_gevent-{py27,py36,py37,py38,py310},
47- python-adapter_gunicorn-{py36}-aiohttp1-gunicorn{19,latest},
48- python-adapter_gunicorn-{py36,py37,py38,py39,py310}-aiohttp3-gunicornlatest,
49- python-adapter_uvicorn-{py36,py37}-uvicorn03,
50- ; Temporarily testing py36 on the uvicorn version preceeding v0.15
51- python-adapter_uvicorn-{py36}-uvicorn014
45+ python-adapter_cheroot-{py27,py37,py38,py39,py310},
46+ python-adapter_gevent-{py27,py37,py38,py310},
47+ python-adapter_gunicorn-{py37,py38,py39,py310}-aiohttp3-gunicornlatest,
48+ python-adapter_uvicorn-py37-uvicorn03,
5249 python-adapter_uvicorn-{py37,py38,py39,py310}-uvicornlatest,
53- python-agent_features-{py27,py36, py37,py38,py39,py310}-{with,without}_extensions,
50+ python-agent_features-{py27,py37,py38,py39,py310}-{with,without}_extensions,
5451 python-agent_features-{pypy,pypy37}-without_extensions,
5552 python-agent_streaming-py27-grpc0125-{with,without}_extensions,
56- python-agent_streaming-{py36, py37,py38,py39,py310}-{with,without}_extensions,
57- python-agent_unittests-{py27,py36, py37,py38,py39,py310}-{with,without}_extensions,
53+ python-agent_streaming-{py37,py38,py39,py310}-{with,without}_extensions,
54+ python-agent_unittests-{py27,py37,py38,py39,py310}-{with,without}_extensions,
5855 python-agent_unittests-{pypy,pypy37}-without_extensions,
59- python-application_celery-{py27,py36, py37,py38,py39,py310,pypy,pypy37},
56+ python-application_celery-{py27,py37,py38,py39,py310,pypy,pypy37},
6057 gearman-application_gearman-{py27,pypy},
6158 python-component_djangorestframework-py27-djangorestframework0300,
62- python-component_djangorestframework-{py36, py37,py38,py39,py310}-djangorestframeworklatest,
63- python-component_flask_rest-{py27,py36, py37,py38,py39,pypy,pypy37},
64- python-component_graphqlserver-{py36, py37,py38,py39,py310},
59+ python-component_djangorestframework-{py37,py38,py39,py310}-djangorestframeworklatest,
60+ python-component_flask_rest-{py27,py37,py38,py39,pypy,pypy37},
61+ python-component_graphqlserver-{py37,py38,py39,py310},
6562 python-component_tastypie-{py27,pypy}-tastypie0143,
66- python-component_tastypie-{py36, py37,py38,py39,pypy37}-tastypie{0143,latest},
67- python-coroutines_asyncio-{py36, py37,py38,py39,py310,pypy37},
68- python-cross_agent-{py27,py36, py37,py38,py39,py310}-{with,without}_extensions,
63+ python-component_tastypie-{py37,py38,py39,pypy37}-tastypie{0143,latest},
64+ python-coroutines_asyncio-{py37,py38,py39,py310,pypy37},
65+ python-cross_agent-{py27,py37,py38,py39,py310}-{with,without}_extensions,
6966 python-cross_agent-pypy-without_extensions,
70- postgres-datastore_asyncpg-{py36, py37,py38,py39,py310},
71- memcached-datastore_bmemcached-{pypy,py27,py36, py37,py38,py39,py310}-memcached030,
72- elasticsearchserver01-datastore_pyelasticsearch-{py27,py36, pypy},
67+ postgres-datastore_asyncpg-{py37,py38,py39,py310},
68+ memcached-datastore_bmemcached-{pypy,py27,py37,py38,py39,py310}-memcached030,
69+ elasticsearchserver01-datastore_pyelasticsearch-{py27,pypy},
7370 elasticsearchserver01-datastore_elasticsearch-py27-elasticsearch{00,01,02,05},
74- elasticsearchserver07-datastore_elasticsearch-{py27,py36, py37,py38,py39,py310,pypy,pypy37}-elasticsearch{07},
75- memcached-datastore_memcache-{py27,py36, py37,py38,py39,py310,pypy,pypy37}-memcached01,
71+ elasticsearchserver07-datastore_elasticsearch-{py27,py37,py38,py39,py310,pypy,pypy37}-elasticsearch{07},
72+ memcached-datastore_memcache-{py27,py37,py38,py39,py310,pypy,pypy37}-memcached01,
7673 mysql-datastore_mysql-mysql080023-py27,
7774 mysql-datastore_mysql-mysqllatest-{py37,py38,py39,py310},
78- postgres-datastore_postgresql-{py36, py37,py38,py39},
79- postgres-datastore_psycopg2-{py27,py36, py37,py38,py39,py310}-psycopg20208,
80- postgres-datastore_psycopg2cffi-{py27,py36, pypy}-psycopg2cffi{0207,0208},
75+ postgres-datastore_postgresql-{py37,py38,py39},
76+ postgres-datastore_psycopg2-{py27,py37,py38,py39,py310}-psycopg20208,
77+ postgres-datastore_psycopg2cffi-{py27,pypy}-psycopg2cffi{0207,0208},
8178 postgres-datastore_psycopg2cffi-{py37,py38,py39,py310}-psycopg2cffi0208,
82- memcached-datastore_pylibmc-{py27,py36, py37},
83- memcached-datastore_pymemcache-{py27,py36, py37,py38,py39,py310,pypy,pypy37},
84- mongodb-datastore_pymongo-{py27,py36, py37,py38,py39,py310,pypy}-pymongo{03},
79+ memcached-datastore_pylibmc-{py27,py37},
80+ memcached-datastore_pymemcache-{py27,py37,py38,py39,py310,pypy,pypy37},
81+ mongodb-datastore_pymongo-{py27,py37,py38,py39,py310,pypy}-pymongo{03},
8582 mongodb-datastore_pymongo-{py37,py38,py39,py310,pypy,pypy37}-pymongo04,
86- mysql-datastore_pymysql-{py27,py36, py37,py38,py39,py310,pypy,pypy37},
87- solr-datastore_pysolr-{py27,py36, py37,py38,py39,py310,pypy,pypy37},
88- redis-datastore_redis-{py27,py36, py37,py38,pypy,pypy37}-redis03,
89- redis-datastore_redis-{py36, py37,py38,py39,py310,pypy37}-redis{0400,latest},
90- redis-datastore_aioredis-{py36, py37,py38,py39,py310,pypy37}-aioredislatest,
83+ mysql-datastore_pymysql-{py27,py37,py38,py39,py310,pypy,pypy37},
84+ solr-datastore_pysolr-{py27,py37,py38,py39,py310,pypy,pypy37},
85+ redis-datastore_redis-{py27,py37,py38,pypy,pypy37}-redis03,
86+ redis-datastore_redis-{py37,py38,py39,py310,pypy37}-redis{0400,latest},
87+ redis-datastore_aioredis-{py37,py38,py39,py310,pypy37}-aioredislatest,
9188 redis-datastore_aioredis-py39-aioredis01,
92- redis-datastore_aredis-{py36, py37,py38,py39,pypy37}-aredislatest,
89+ redis-datastore_aredis-{py37,py38,py39,pypy37}-aredislatest,
9390 solr-datastore_solrpy-{py27,pypy}-solrpy{00,01},
94- python-datastore_sqlite-{py27,py36, py37,py38,py39,py310,pypy,pypy37},
91+ python-datastore_sqlite-{py27,py37,py38,py39,py310,pypy,pypy37},
9592 memcached-datastore_umemcache-{py27,pypy},
96- python-external_boto3-{py27,py36, py37,py38,py39,py310}-boto01,
97- python-external_botocore-{py27,py36, py37,py38,py39,py310},
93+ python-external_boto3-{py27,py37,py38,py39,py310}-boto01,
94+ python-external_botocore-{py27,py37,py38,py39,py310},
9895 python-external_feedparser-py27-feedparser{05,06},
99- python-external_http-{py27,py36, py37,py38,py39,py310,pypy},
100- python-external_httplib-{py27,py36, py37,py38,py39,py310,pypy,pypy37},
101- python-external_httplib2-{py27,py36, py37,py38,py39,py310,pypy,pypy37},
102- python-external_httpx-{py36, py37,py38,py39,py310},
103- python-external_requests-{py27,py36, py37,py38,py39,py310,pypy,pypy37},
96+ python-external_http-{py27,py37,py38,py39,py310,pypy},
97+ python-external_httplib-{py27,py37,py38,py39,py310,pypy,pypy37},
98+ python-external_httplib2-{py27,py37,py38,py39,py310,pypy,pypy37},
99+ python-external_httpx-{py37,py38,py39,py310},
100+ python-external_requests-{py27,py37,py38,py39,py310,pypy,pypy37},
104101 python-external_urllib3-{py27,py37,pypy}-urllib3{0109},
105- python-external_urllib3-{py27,py36, py37,py38,py39,py310,pypy,pypy37}-urllib3latest,
106- python-framework_aiohttp-{py36, py37,py38,py39,py310,pypy37}-aiohttp03,
107- python-framework_ariadne-{py36, py37,py38,py39,py310}-ariadnelatest,
102+ python-external_urllib3-{py27,py37,py38,py39,py310,pypy,pypy37}-urllib3latest,
103+ python-framework_aiohttp-{py37,py38,py39,py310,pypy37}-aiohttp03,
104+ python-framework_ariadne-{py37,py38,py39,py310}-ariadnelatest,
108105 python-framework_ariadne-py37-ariadne{0011,0012,0013},
109106 python-framework_bottle-py27-bottle{0008,0009,0010},
110- python-framework_bottle-{py27,py36, py37,py38,py39,pypy37}-bottle{0011,0012},
107+ python-framework_bottle-{py27,py37,py38,py39,pypy37}-bottle{0011,0012},
111108 python-framework_bottle-py310-bottle0012,
112109 python-framework_bottle-pypy-bottle{0008,0009,0010,0011,0012},
113- python-framework_cherrypy-{py36, py37,py38,py39,py310,pypy37}-CherryPy18,
114- python-framework_cherrypy-{py36, py37}-CherryPy0302,
110+ python-framework_cherrypy-{py37,py38,py39,py310,pypy37}-CherryPy18,
111+ python-framework_cherrypy-{py37}-CherryPy0302,
115112 python-framework_cherrypy-pypy37-CherryPy0303,
116113 python-framework_django-{pypy,py27}-Django0103,
117114 python-framework_django-{pypy,py27,py37}-Django0108,
118115 python-framework_django-{py39}-Django{0200,0201,0202,0300,0301,latest},
119- python-framework_django-{py36, py37,py38,py39,py310}-Django0302,
120- python-framework_falcon-{py27,py36, py37,py38,py39,pypy,pypy37}-falcon0103,
121- python-framework_falcon-{py36, py37,py38,py39,py310,pypy37}-falcon{0200,master},
122- python-framework_fastapi-{py36, py37,py38,py39,py310},
116+ python-framework_django-{py37,py38,py39,py310}-Django0302,
117+ python-framework_falcon-{py27,py37,py38,py39,pypy,pypy37}-falcon0103,
118+ python-framework_falcon-{py37,py38,py39,py310,pypy37}-falcon{0200,master},
119+ python-framework_fastapi-{py37,py38,py39,py310},
123120 python-framework_flask-{pypy,py27}-flask0012,
124- python-framework_flask-{pypy,py27,py36, py37,py38,py39,py310,pypy37}-flask0101,
121+ python-framework_flask-{pypy,py27,py37,py38,py39,py310,pypy37}-flask0101,
125122 ; temporarily disabling flaskmaster tests
126123 python-framework_flask-{py37,py38,py39,py310,pypy37}-flask{latest},
127- python-framework_graphene-{py36, py37,py38,py39,py310}-graphenelatest,
128- python-framework_graphene-{py27,py36, py37,py38,py39,pypy,pypy37}-graphene{0200,0201},
124+ python-framework_graphene-{py37,py38,py39,py310}-graphenelatest,
125+ python-framework_graphene-{py27,py37,py38,py39,pypy,pypy37}-graphene{0200,0201},
129126 python-framework_graphene-py310-graphene0201,
130- python-framework_graphql-{py27,py36, py37,py38,py39,py310,pypy,pypy37}-graphql02,
131- python-framework_graphql-{py36, py37,py38,py39,py310,pypy37}-graphql03,
127+ python-framework_graphql-{py27,py37,py38,py39,py310,pypy,pypy37}-graphql02,
128+ python-framework_graphql-{py37,py38,py39,py310,pypy37}-graphql03,
132129 python-framework_graphql-py37-graphql{0202,0203,0300,0301,0302,master},
133- grpc-framework_grpc-{py27,py36 }-grpc0125,
134- grpc-framework_grpc-{py36, py37,py38,py39,py310}-grpclatest,
130+ grpc-framework_grpc-{py27}-grpc0125,
131+ grpc-framework_grpc-{py37,py38,py39,py310}-grpclatest,
135132 python-framework_pyramid-{pypy,py27,py38}-Pyramid0104,
136- python-framework_pyramid-{pypy,py27,pypy37,py36, py37,py38,py39,py310}-Pyramid0110-cornice,
133+ python-framework_pyramid-{pypy,py27,pypy37,py37,py38,py39,py310}-Pyramid0110-cornice,
137134 python-framework_pyramid-{py37,py38,py39,py310,pypy37}-Pyramidmaster,
138135 python-framework_sanic-{py38,pypy37}-sanic{190301,1906,1812,1912,200904,210300},
139- python-framework_sanic-{py36, py37,py38,py310,pypy37}-saniclatest,
140- python-framework_starlette-{py36, py310,pypy37}-starlette{0014,0015,0019},
141- python-framework_starlette-{py36, py37,py38,py39,py310,pypy37}-starlettelatest,
136+ python-framework_sanic-{py37,py38,py310,pypy37}-saniclatest,
137+ python-framework_starlette-{py310,pypy37}-starlette{0014,0015,0019},
138+ python-framework_starlette-{py37,py38,py39,py310,pypy37}-starlettelatest,
142139 python-framework_strawberry-{py37,py38,py39,py310}-strawberrylatest,
143- python-logger_logging-{py27,py36, py37,py38,py39,py310,pypy,pypy37},
144- python-logger_loguru-{py36, py37,py38,py39,py310,pypy37}-logurulatest,
140+ python-logger_logging-{py27,py37,py38,py39,py310,pypy,pypy37},
141+ python-logger_loguru-{py37,py38,py39,py310,pypy37}-logurulatest,
145142 python-logger_loguru-py39-loguru{06,05,04,03},
146- libcurl-framework_tornado-{py36, py37,py38,py39,py310,pypy37}-tornado0600,
143+ libcurl-framework_tornado-{py37,py38,py39,py310,pypy37}-tornado0600,
147144 libcurl-framework_tornado-{py37,py38,py39,py310}-tornadomaster,
148- rabbitmq-messagebroker_pika-{py27,py36, py37,py38,py39,pypy,pypy37}-pika0.13,
149- rabbitmq-messagebroker_pika-{py36, py37,py38,py39,py310,pypy37}-pikalatest,
150- python-template_mako-{py27,py36, py37,py38,py39,py310}
145+ rabbitmq-messagebroker_pika-{py27,py37,py38,py39,pypy,pypy37}-pika0.13,
146+ rabbitmq-messagebroker_pika-{py37,py38,py39,py310,pypy37}-pikalatest,
147+ python-template_mako-{py27,py37,py38,py39,py310}
151148
152149[pytest]
153150usefixtures =
@@ -158,7 +155,7 @@ usefixtures =
158155[testenv]
159156deps =
160157 # Base Dependencies
161- {py36, py37,py38,py39,py310,pypy37}: pytest ==6.2.5
158+ {py37,py38,py39,py310,pypy37}: pytest ==6.2.5
162159 {py27,pypy}: pytest ==4.6.11
163160 iniconfig
164161 pytest-cov
@@ -196,10 +193,10 @@ deps =
196193 component_graphqlserver: jinja2<3.1
197194 component_tastypie-tastypie0143: django-tastypie<0.14.4
198195 component_tastypie-{py27,pypy}-tastypie0143: django<1.12
199- component_tastypie-{py36, py37,py38,py39,py310,pypy37}-tastypie0143: django<3.0.1
196+ component_tastypie-{py37,py38,py39,py310,pypy37}-tastypie0143: django<3.0.1
200197 component_tastypie-tastypielatest: django-tastypie
201198 component_tastypie-tastypielatest: django<4.1
202- coroutines_asyncio-{py36, py37,py38,py39,py310}: uvloop
199+ coroutines_asyncio-{py37,py38,py39,py310}: uvloop
203200 cross_agent: mock ==1.0.1
204201 cross_agent: requests
205202 datastore_asyncpg: asyncpg
@@ -240,7 +237,7 @@ deps =
240237 external_boto3-boto01: moto<2.0
241238 external_boto3-py27: rsa<4.7.1
242239 external_botocore: botocore
243- external_botocore-{py36, py37,py38,py39,py310}: moto[awslambda,ec2,iam]<3.0
240+ external_botocore-{py37,py38,py39,py310}: moto[awslambda,ec2,iam]<3.0
244241 external_botocore-py27: rsa<4.7.1
245242 external_botocore-py27: moto[awslambda,ec2,iam]<2.0
246243 external_feedparser-feedparser05: feedparser<6
0 commit comments