diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 7f7dc821d2..8864b82201 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -89,6 +89,11 @@ jobs: python-version: "pypy-3.6" architecture: x64 + - uses: actions/setup-python@v3 + with: + python-version: "pypy-3.7" + architecture: x64 + - uses: actions/setup-python@v3 with: python-version: "pypy-2.7" @@ -164,6 +169,11 @@ jobs: python-version: "pypy-3.6" architecture: x64 + - uses: actions/setup-python@v3 + with: + python-version: "pypy-3.7" + architecture: x64 + - uses: actions/setup-python@v3 with: python-version: "pypy-2.7" @@ -239,6 +249,11 @@ jobs: python-version: "pypy-3.6" architecture: x64 + - uses: actions/setup-python@v3 + with: + python-version: "pypy-3.7" + architecture: x64 + - uses: actions/setup-python@v3 with: python-version: "pypy-2.7" @@ -335,6 +350,11 @@ jobs: python-version: "pypy-3.6" architecture: x64 + - uses: actions/setup-python@v3 + with: + python-version: "pypy-3.7" + architecture: x64 + - uses: actions/setup-python@v3 with: python-version: "pypy-2.7" @@ -428,6 +448,11 @@ jobs: python-version: "pypy-3.6" architecture: x64 + - uses: actions/setup-python@v3 + with: + python-version: "pypy-3.7" + architecture: x64 + - uses: actions/setup-python@v3 with: python-version: "pypy-2.7" @@ -516,6 +541,11 @@ jobs: python-version: "pypy-3.6" architecture: x64 + - uses: actions/setup-python@v3 + with: + python-version: "pypy-3.7" + architecture: x64 + - uses: actions/setup-python@v3 with: python-version: "pypy-2.7" @@ -606,6 +636,11 @@ jobs: python-version: "pypy-3.6" architecture: x64 + - uses: actions/setup-python@v3 + with: + python-version: "pypy-3.7" + architecture: x64 + - uses: actions/setup-python@v3 with: python-version: "pypy-2.7" @@ -694,6 +729,11 @@ jobs: python-version: "pypy-3.6" architecture: x64 + - uses: actions/setup-python@v3 + with: + python-version: "pypy-3.7" + architecture: x64 + - uses: actions/setup-python@v3 with: python-version: "pypy-2.7" @@ -783,6 +823,11 @@ jobs: python-version: "pypy-3.6" architecture: x64 + - uses: actions/setup-python@v3 + with: + python-version: "pypy-3.7" + architecture: x64 + - uses: actions/setup-python@v3 with: python-version: "pypy-2.7" @@ -871,6 +916,11 @@ jobs: python-version: "pypy-3.6" architecture: x64 + - uses: actions/setup-python@v3 + with: + python-version: "pypy-3.7" + architecture: x64 + - uses: actions/setup-python@v3 with: python-version: "pypy-2.7" @@ -961,6 +1011,11 @@ jobs: python-version: "pypy-3.6" architecture: x64 + - uses: actions/setup-python@v3 + with: + python-version: "pypy-3.7" + architecture: x64 + - uses: actions/setup-python@v3 with: python-version: "pypy-2.7" @@ -1051,6 +1106,11 @@ jobs: python-version: "pypy-3.6" architecture: x64 + - uses: actions/setup-python@v3 + with: + python-version: "pypy-3.7" + architecture: x64 + - uses: actions/setup-python@v3 with: python-version: "pypy-2.7" @@ -1138,6 +1198,11 @@ jobs: python-version: "pypy-3.6" architecture: x64 + - uses: actions/setup-python@v3 + with: + python-version: "pypy-3.7" + architecture: x64 + - uses: actions/setup-python@v3 with: python-version: "pypy-2.7" diff --git a/tox.ini b/tox.ini index c98bf436cf..5c05c8c5fb 100644 --- a/tox.ini +++ b/tox.ini @@ -16,7 +16,7 @@ ; framework_aiohttp-aiohttp01: aiohttp<2 ; framework_aiohttp-aiohttp0202: aiohttp<2.3 ; 3. Python version required. Uses the standard tox definitions. (https://tox.readthedocs.io/en/latest/config.html#tox-environments) -; Examples: py27,py36,py37,py38,py39,pypy,pypy3 +; Examples: py27,py36,py37,py38,py39,pypy,pypy36 ; 4. Library and version (Optional). Used when testing multiple versions of the library, and may be omitted when only testing a single version. ; 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. ; Examples: uvicorn03, CherryPy0302, uvicornlatest @@ -28,7 +28,7 @@ ; 5. With or without New Relic C extensions (Optional). Used for testing agent features. ; Examples: with_extensions, without_extensions ; envlist = -; python-agent_features-pypy3-without_extensions, +; python-agent_features-pypy36-without_extensions, ; python-agent_streaming-py37-{with,without}_extensions, ; ; Full Format: @@ -51,28 +51,28 @@ envlist = python-adapter_uvicorn-{py36}-uvicorn014 python-adapter_uvicorn-{py37,py38,py39,py310}-uvicornlatest, python-agent_features-{py27,py36,py37,py38,py39,py310}-{with,without}_extensions, - python-agent_features-{pypy,pypy3}-without_extensions, + python-agent_features-{pypy,pypy36}-without_extensions, python-agent_streaming-py27-grpc0125-{with,without}_extensions, python-agent_streaming-{py36,py37,py38,py39,py310}-{with,without}_extensions, python-agent_unittests-{py27,py36,py37,py38,py39,py310}-{with,without}_extensions, - python-agent_unittests-{pypy,pypy3}-without_extensions, - python-application_celery-{py27,py36,py37,py38,py39,py310,pypy,pypy3}, + python-agent_unittests-{pypy,pypy36}-without_extensions, + python-application_celery-{py27,py36,py37,py38,py39,py310,pypy,pypy36}, gearman-application_gearman-{py27,pypy}, python-component_djangorestframework-py27-djangorestframework0300, python-component_djangorestframework-{py36,py37,py38,py39,py310}-djangorestframeworklatest, - python-component_flask_rest-{py27,py36,py37,py38,py39,pypy,pypy3}, + python-component_flask_rest-{py27,py36,py37,py38,py39,pypy,pypy36}, python-component_graphqlserver-{py36,py37,py38,py39,py310}, python-component_tastypie-{py27,pypy}-tastypie0143, - python-component_tastypie-{py36,py37,py38,py39,pypy3}-tastypie{0143,latest}, - python-coroutines_asyncio-{py36,py37,py38,py39,py310,pypy3}, + python-component_tastypie-{py36,py37,py38,py39,pypy36}-tastypie{0143,latest}, + python-coroutines_asyncio-{py36,py37,py38,py39,py310,pypy36}, python-cross_agent-{py27,py36,py37,py38,py39,py310}-{with,without}_extensions, python-cross_agent-pypy-without_extensions, postgres-datastore_asyncpg-{py36,py37,py38,py39,py310}, memcached-datastore_bmemcached-{pypy,py27,py36,py37,py38,py39,py310}-memcached030, elasticsearchserver01-datastore_pyelasticsearch-{py27,py36,pypy}, elasticsearchserver01-datastore_elasticsearch-py27-elasticsearch{00,01,02,05}, - elasticsearchserver07-datastore_elasticsearch-{py27,py36,py37,py38,py39,py310,pypy,pypy3}-elasticsearch{07}, - memcached-datastore_memcache-{py27,py36,py37,py38,py39,py310,pypy,pypy3}-memcached01, + elasticsearchserver07-datastore_elasticsearch-{py27,py36,py37,py38,py39,py310,pypy,pypy36}-elasticsearch{07}, + memcached-datastore_memcache-{py27,py36,py37,py38,py39,py310,pypy,pypy36}-memcached01, mysql-datastore_mysql-mysql080023-py27, mysql-datastore_mysql-mysqllatest-{py36,py37,py38,py39,py310}, postgres-datastore_postgresql-{py36,py37,py38,py39}, @@ -80,50 +80,48 @@ envlist = postgres-datastore_psycopg2cffi-{py27,py36,pypy}-psycopg2cffi{0207,0208}, postgres-datastore_psycopg2cffi-{py37,py38,py39,py310}-psycopg2cffi0208, memcached-datastore_pylibmc-{py27,py36,py37}, - memcached-datastore_pymemcache-{py27,py36,py37,py38,py39,py310,pypy,pypy3}, + memcached-datastore_pymemcache-{py27,py36,py37,py38,py39,py310,pypy,pypy36}, mongodb-datastore_pymongo-{py27,py36,py37,py38,py39,py310,pypy}-pymongo{03}, - mysql-datastore_pymysql-{py27,py36,py37,py38,py39,py310,pypy,pypy3}, - solr-datastore_pysolr-{py27,py36,py37,py38,py39,py310,pypy,pypy3}, - redis-datastore_redis-{py27,py36,py37,py38,pypy,pypy3}-redis03, - redis-datastore_redis-{py36,py37,py38,py39,py310,pypy3}-redis{0400,latest}, - redis-datastore_aredis-{py36,py37,py38,py39,pypy3}-aredislatest, + mysql-datastore_pymysql-{py27,py36,py37,py38,py39,py310,pypy,pypy36}, + solr-datastore_pysolr-{py27,py36,py37,py38,py39,py310,pypy,pypy36}, + redis-datastore_redis-{py27,py36,py37,py38,pypy,pypy36}-redis03, + redis-datastore_redis-{py36,py37,py38,py39,py310,pypy36}-redis{0400,latest}, + redis-datastore_aredis-{py36,py37,py38,py39,pypy36}-aredislatest, solr-datastore_solrpy-{py27,pypy}-solrpy{00,01}, - python-datastore_sqlite-{py27,py36,py37,py38,py39,py310,pypy,pypy3}, + python-datastore_sqlite-{py27,py36,py37,py38,py39,py310,pypy,pypy36}, memcached-datastore_umemcache-{py27,pypy}, python-external_boto3-{py27,py36,py37,py38,py39,py310}-boto01, python-external_botocore-{py27,py36,py37,py38,py39,py310}, python-external_feedparser-py27-feedparser{05,06}, python-external_http-{py27,py36,py37,py38,py39,py310,pypy}, - python-external_httplib-{py27,py36,py37,py38,py39,py310,pypy,pypy3}, - python-external_httplib2-{py27,py36,py37,py38,py39,py310,pypy,pypy3}, + python-external_httplib-{py27,py36,py37,py38,py39,py310,pypy,pypy36}, + python-external_httplib2-{py27,py36,py37,py38,py39,py310,pypy,pypy36}, python-external_httpx-{py36,py37,py38,py39,py310}, - python-external_requests-{py27,py36,py37,py38,py39,py310,pypy,pypy3}, + python-external_requests-{py27,py36,py37,py38,py39,py310,pypy,pypy36}, python-external_urllib3-{py27,py37,pypy}-urllib3{0109}, - python-external_urllib3-{py27,py36,py37,py38,py39,py310,pypy,pypy3}-urllib3latest, - python-framework_aiohttp-{py36,py37,py38,py39,py310,pypy3}-aiohttp03, + python-external_urllib3-{py27,py36,py37,py38,py39,py310,pypy,pypy36}-urllib3latest, + python-framework_aiohttp-{py36,py37,py38,py39,py310,pypy36}-aiohttp03, python-framework_ariadne-{py36,py37,py38,py39,py310}-ariadnelatest, python-framework_ariadne-py37-ariadne{0011,0012,0013}, python-framework_bottle-py27-bottle{0008,0009,0010}, - python-framework_bottle-{py27,py36,py37,py38,py39,pypy3}-bottle{0011,0012}, + python-framework_bottle-{py27,py36,py37,py38,py39,pypy36}-bottle{0011,0012}, python-framework_bottle-py310-bottle0012, python-framework_bottle-pypy-bottle{0008,0009,0010,0011,0012}, - python-framework_cherrypy-{py36,py37,py38,py39,py310,pypy3}-CherryPy18, + python-framework_cherrypy-{py36,py37,py38,py39,py310,pypy36}-CherryPy18, python-framework_cherrypy-{py36,py37}-CherryPy0302, - python-framework_cherrypy-pypy3-CherryPy0303, + python-framework_cherrypy-pypy36-CherryPy0303, python-framework_django-{pypy,py27}-Django0103, python-framework_django-{pypy,py27,py37}-Django0108, python-framework_django-{py39}-Django{0200,0201,0202,0300,0301,latest}, python-framework_django-{py36,py37,py38,py39,py310}-Django0302, - python-framework_falcon-{py27,py36,py37,py38,py39,pypy,pypy3}-falcon0103, - python-framework_falcon-{py36,py37,py38,py39,py310,pypy3}-falcon{0200,master}, + python-framework_falcon-{py27,py36,py37,py38,py39,pypy,pypy36}-falcon0103, + python-framework_falcon-{py36,py37,py38,py39,py310,pypy36}-falcon{0200,master}, python-framework_fastapi-{py36,py37,py38,py39,py310}, python-framework_flask-{pypy,py27}-flask0012, - python-framework_flask-{pypy,py27,py36,py37,py38,py39,py310,pypy3}-flask0101, - ;temporarily disabling tests on flask master - ;python-framework_flask-{py37,py38,py39,py310,pypy3}-flask{latest,master}, - python-framework_flask-{py37,py38,py39,py310,pypy3}-flask{latest}, + python-framework_flask-{pypy,py27,py36,py37,py38,py39,py310,pypy36}-flask0101, + python-framework_flask-{py37,py38,py39,py310,pypy37}-flask{latest,master}, python-framework_graphene-{py36,py37,py38,py39,py310}-graphenelatest, - python-framework_graphene-{py27,py36,py37,py38,py39,pypy,pypy3}-graphene{0200,0201}, + python-framework_graphene-{py27,py36,py37,py38,py39,pypy,pypy36}-graphene{0200,0201}, python-framework_graphene-py310-graphene0201, python-framework_graphql-{py27,py36,py37,py38,py39,py310,pypy,pypy36}-graphql02, python-framework_graphql-{py36,py37,py38,py39,py310,pypy36}-graphql03, @@ -131,18 +129,18 @@ envlist = grpc-framework_grpc-{py27,py36}-grpc0125, grpc-framework_grpc-{py36,py37,py38,py39,py310}-grpclatest, python-framework_pyramid-{pypy,py27,py38}-Pyramid0104, - python-framework_pyramid-{pypy,py27,pypy3,py36,py37,py38,py39,py310}-Pyramid0110-cornice, - ;temporarily disabling pypy3 on pyramid master + python-framework_pyramid-{pypy,py27,pypy36,py36,py37,py38,py39,py310}-Pyramid0110-cornice, + ;temporarily disabling pypy36 on pyramid master python-framework_pyramid-{py37,py38,py39,py310}-Pyramidmaster, - python-framework_sanic-{py38,pypy3}-sanic{190301,1906,1812,1912,200904,210300}, - python-framework_sanic-{py36,py37,py38,py310,pypy3}-saniclatest, - python-framework_starlette-{py36,py310,pypy3}-starlette{0014,0015,0019}, - python-framework_starlette-{py36,py37,py38,py39,py310,pypy3}-starlette{latest}, + python-framework_sanic-{py38,pypy36}-sanic{190301,1906,1812,1912,200904,210300}, + python-framework_sanic-{py36,py37,py38,py310,pypy36}-saniclatest, + python-framework_starlette-{py36,py310,pypy36}-starlette{0014,0015,0019}, + python-framework_starlette-{py36,py37,py38,py39,py310,pypy36}-starlette{latest}, python-framework_strawberry-{py37,py38,py39,py310}-strawberrylatest, - libcurl-framework_tornado-{py36,py37,py38,py39,py310,pypy3}-tornado0600, + libcurl-framework_tornado-{py36,py37,py38,py39,py310,pypy36}-tornado0600, libcurl-framework_tornado-{py37,py38,py39,py310}-tornadomaster, - rabbitmq-messagebroker_pika-{py27,py36,py37,py38,py39,pypy,pypy3}-pika0.13, - rabbitmq-messagebroker_pika-{py27,py36,py37,py38,py39,py310,pypy,pypy3}-pikalatest, + rabbitmq-messagebroker_pika-{py27,py36,py37,py38,py39,pypy,pypy36}-pika0.13, + rabbitmq-messagebroker_pika-{py27,py36,py37,py38,py39,py310,pypy,pypy36}-pikalatest, python-template_mako-{py27,py36,py37,py38,py39,py310} [pytest] @@ -154,7 +152,7 @@ usefixtures = [testenv] deps = # Base Dependencies - {py36,py37,py38,py39,py310,pypy3}: pytest==6.2.5 + {py36,py37,py38,py39,py310,pypy36}: pytest==6.2.5 {py27,pypy}: pytest==4.6.11 iniconfig pytest-cov @@ -192,7 +190,7 @@ deps = component_graphqlserver: jinja2<3.1 component_tastypie-tastypie0143: django-tastypie<0.14.4 component_tastypie-{py27,pypy}-tastypie0143: django<1.12 - component_tastypie-{py36,py37,py38,py39,pypy3}-tastypie0143: django<3.0.1 + component_tastypie-{py36,py37,py38,py39,pypy36}-tastypie0143: django<3.0.1 component_tastypie-tastypielatest: django-tastypie component_tastypie-tastypielatest: django coroutines_asyncio: uvloop