Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[10] Move the Web 1 group over to the tox gen script #3980

Open
wants to merge 3 commits into
base: ivana/tox-script-4
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/test-integrations-web-1.yml
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,7 @@ jobs:
strategy:
fail-fast: false
matrix:
python-version: ["3.6","3.7","3.8","3.9","3.10","3.11","3.12"]
python-version: ["3.6","3.7","3.8","3.9","3.10","3.11","3.12","3.13"]
# python3.6 reached EOL and is no longer being supported on
# new versions of hosted runners on Github Actions
# ubuntu-20.04 is the last version that supported python3.6
Expand Down
26 changes: 25 additions & 1 deletion scripts/populate_tox/config.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,28 @@
#
# See scripts/populate_tox/README.md for more info on the format and examples.

TEST_SUITE_CONFIG = {}
TEST_SUITE_CONFIG = {
"flask": {
"package": "flask",
"deps": {
"*": ["flask-login", "werkzeug"],
"<2.0": ["werkzeug<2.1.0", "markupsafe<2.1.0"],
},
},
"starlette": {
"package": "starlette",
"deps": {
"*": [
"pytest-asyncio",
"python-multipart",
"requests",
"anyio<4.0.0",
"jinja2",
"httpx",
],
"<=0.36": ["httpx<0.28.0"],
"<0.15": ["jinja2<3.1"],
"py3.6": ["aiocontextvars"],
},
},
}
2 changes: 0 additions & 2 deletions scripts/populate_tox/populate_tox.py
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,6 @@
"dramatiq",
"falcon",
"fastapi",
"flask",
"gcp",
"gql",
"graphene",
Expand All @@ -99,7 +98,6 @@
"rq",
"sanic",
"spark",
"starlette",
"starlite",
"sqlalchemy",
"strawberry",
Expand Down
40 changes: 0 additions & 40 deletions scripts/populate_tox/tox.jinja
Original file line number Diff line number Diff line change
Expand Up @@ -131,12 +131,6 @@ envlist =
{py3.7,py3.10}-fastapi-v{0.79}
{py3.8,py3.12,py3.13}-fastapi-latest

# Flask
{py3.6,py3.8}-flask-v{1}
{py3.8,py3.11,py3.12}-flask-v{2}
{py3.10,py3.11,py3.12}-flask-v{3}
{py3.10,py3.12,py3.13}-flask-latest

# GCP
{py3.7}-gcp

Expand Down Expand Up @@ -261,12 +255,6 @@ envlist =
{py3.8,py3.10,py3.11}-spark-v{3.1,3.3,3.5}
{py3.8,py3.10,py3.11,py3.12}-spark-latest

# Starlette
{py3.7,py3.10}-starlette-v{0.19}
{py3.7,py3.11}-starlette-v{0.24,0.28}
{py3.8,py3.11,py3.12}-starlette-v{0.32,0.36,0.40}
{py3.8,py3.12,py3.13}-starlette-latest

# Starlite
{py3.8,py3.11}-starlite-v{1.48,1.51}
# 1.51.14 is the last starlite version; the project continues as litestar
Expand Down Expand Up @@ -485,16 +473,6 @@ deps =
fastapi-v{0.79}: fastapi~=0.79.0
fastapi-latest: fastapi

# Flask
flask: flask-login
flask-v{1,2.0}: Werkzeug<2.1.0
flask-v{1,2.0}: markupsafe<2.1.0
flask-v{3}: Werkzeug
flask-v1: Flask~=1.0
flask-v2: Flask~=2.0
flask-v3: Flask~=3.0
flask-latest: Flask

# GQL
gql-v{3.4}: gql[all]~=3.4.0
gql-latest: gql[all]
Expand Down Expand Up @@ -697,24 +675,6 @@ deps =
spark-v4.0: pyspark==4.0.0.dev2
spark-latest: pyspark

# Starlette
starlette: pytest-asyncio
starlette: python-multipart
starlette: requests
# (this is a dependency of httpx)
starlette: anyio<4.0.0
starlette: jinja2
starlette-v{0.19,0.24,0.28,0.32,0.36}: httpx<0.28.0
starlette-v0.40: httpx
starlette-latest: httpx
starlette-v0.19: starlette~=0.19.0
starlette-v0.24: starlette~=0.24.0
starlette-v0.28: starlette~=0.28.0
starlette-v0.32: starlette~=0.32.0
starlette-v0.36: starlette~=0.36.0
starlette-v0.40: starlette~=0.40.0
starlette-latest: starlette

# Starlite
starlite: pytest-asyncio
starlite: python-multipart
Expand Down
79 changes: 39 additions & 40 deletions tox.ini
Original file line number Diff line number Diff line change
Expand Up @@ -131,12 +131,6 @@ envlist =
{py3.7,py3.10}-fastapi-v{0.79}
{py3.8,py3.12,py3.13}-fastapi-latest

# Flask
{py3.6,py3.8}-flask-v{1}
{py3.8,py3.11,py3.12}-flask-v{2}
{py3.10,py3.11,py3.12}-flask-v{3}
{py3.10,py3.12,py3.13}-flask-latest

# GCP
{py3.7}-gcp

Expand Down Expand Up @@ -261,12 +255,6 @@ envlist =
{py3.8,py3.10,py3.11}-spark-v{3.1,3.3,3.5}
{py3.8,py3.10,py3.11,py3.12}-spark-latest

# Starlette
{py3.7,py3.10}-starlette-v{0.19}
{py3.7,py3.11}-starlette-v{0.24,0.28}
{py3.8,py3.11,py3.12}-starlette-v{0.32,0.36,0.40}
{py3.8,py3.12,py3.13}-starlette-latest

# Starlite
{py3.8,py3.11}-starlite-v{1.48,1.51}
# 1.51.14 is the last starlite version; the project continues as litestar
Expand Down Expand Up @@ -305,6 +293,18 @@ envlist =
# These come from the populate_tox.py script. Eventually we should move all
# integration tests there.

# ~~~ Web 1 ~~~
{py3.6,py3.7,py3.8}-flask-v1.1.4
{py3.8,py3.12,py3.13}-flask-v2.3.3
{py3.8,py3.12,py3.13}-flask-v3.0.3
{py3.9,py3.12,py3.13}-flask-v3.1.0

{py3.6,py3.7}-starlette-v0.13.8
{py3.7,py3.10,py3.11}-starlette-v0.24.0
{py3.8,py3.11,py3.12}-starlette-v0.35.1
{py3.9,py3.12,py3.13}-starlette-v0.45.2



[testenv]
deps =
Expand Down Expand Up @@ -475,16 +475,6 @@ deps =
fastapi-v{0.79}: fastapi~=0.79.0
fastapi-latest: fastapi

# Flask
flask: flask-login
flask-v{1,2.0}: Werkzeug<2.1.0
flask-v{1,2.0}: markupsafe<2.1.0
flask-v{3}: Werkzeug
flask-v1: Flask~=1.0
flask-v2: Flask~=2.0
flask-v3: Flask~=3.0
flask-latest: Flask

# GQL
gql-v{3.4}: gql[all]~=3.4.0
gql-latest: gql[all]
Expand Down Expand Up @@ -687,24 +677,6 @@ deps =
spark-v4.0: pyspark==4.0.0.dev2
spark-latest: pyspark

# Starlette
starlette: pytest-asyncio
starlette: python-multipart
starlette: requests
# (this is a dependency of httpx)
starlette: anyio<4.0.0
starlette: jinja2
starlette-v{0.19,0.24,0.28,0.32,0.36}: httpx<0.28.0
starlette-v0.40: httpx
starlette-latest: httpx
starlette-v0.19: starlette~=0.19.0
starlette-v0.24: starlette~=0.24.0
starlette-v0.28: starlette~=0.28.0
starlette-v0.32: starlette~=0.32.0
starlette-v0.36: starlette~=0.36.0
starlette-v0.40: starlette~=0.40.0
starlette-latest: starlette

# Starlite
starlite: pytest-asyncio
starlite: python-multipart
Expand Down Expand Up @@ -754,6 +726,33 @@ deps =
# These come from the populate_tox.py script. Eventually we should move all
# integration tests there.

# ~~~ Web 1 ~~~
flask-v1.1.4: flask==1.1.4
flask-v2.3.3: flask==2.3.3
flask-v3.0.3: flask==3.0.3
flask-v3.1.0: flask==3.1.0
flask: flask-login
flask: werkzeug
flask-v1.1.4: werkzeug<2.1.0
flask-v1.1.4: markupsafe<2.1.0

starlette-v0.13.8: starlette==0.13.8
starlette-v0.24.0: starlette==0.24.0
starlette-v0.35.1: starlette==0.35.1
starlette-v0.45.2: starlette==0.45.2
starlette: pytest-asyncio
starlette: python-multipart
starlette: requests
starlette: anyio<4.0.0
starlette: jinja2
starlette: httpx
starlette-v0.13.8: httpx<0.28.0
starlette-v0.24.0: httpx<0.28.0
starlette-v0.35.1: httpx<0.28.0
starlette-v0.13.8: jinja2<3.1
py3.6-starlette: aiocontextvars



setenv =
PYTHONDONTWRITEBYTECODE=1
Expand Down
Loading