From e4804d144217326f5b8dd0029a8c216a82ff41b9 Mon Sep 17 00:00:00 2001 From: Christian Clauss Date: Sun, 31 Aug 2025 17:01:07 +0200 Subject: [PATCH] GitHub Actions: Py3.14 with updated deps https://www.python.org/download/pre-releases https://www.python.org/downloads/release/python-3140rc2 --- .github/workflows/test-suite.yml | 7 ++++--- requirements.txt | 20 ++++++++++---------- tests/client/test_auth.py | 2 +- tests/client/test_properties.py | 12 ++++++------ tests/client/test_queryparams.py | 2 +- 5 files changed, 22 insertions(+), 21 deletions(-) diff --git a/.github/workflows/test-suite.yml b/.github/workflows/test-suite.yml index 9ea74686b8..4378c48861 100644 --- a/.github/workflows/test-suite.yml +++ b/.github/workflows/test-suite.yml @@ -14,11 +14,11 @@ jobs: strategy: matrix: - python-version: ["3.9", "3.10", "3.11", "3.12", "3.13"] + python-version: ["3.9", "3.10", "3.11", "3.12", "3.13", "3.14"] steps: - - uses: "actions/checkout@v4" - - uses: "actions/setup-python@v5" + - uses: actions/checkout@v5 + - uses: actions/setup-python@v6 with: python-version: "${{ matrix.python-version }}" allow-prereleases: true @@ -30,5 +30,6 @@ jobs: run: "scripts/build" - name: "Run tests" run: "scripts/test" + timeout-minutes: 10 # TODO(@cclauss): Remove once Python 3.14 tests are passing. - name: "Enforce coverage" run: "scripts/coverage" diff --git a/requirements.txt b/requirements.txt index 8b5a111a71..08953d828b 100644 --- a/requirements.txt +++ b/requirements.txt @@ -11,19 +11,19 @@ chardet==5.2.0 # Documentation mkdocs==1.6.1 mkautodoc==0.2.0 -mkdocs-material==9.5.47 +mkdocs-material==9.6.18 # Packaging -build==1.2.2.post1 -twine==6.0.1 +build==1.3.0 +twine==6.1.0 # Tests & Linting -coverage[toml]==7.6.1 -cryptography==44.0.1 -mypy==1.13.0 -pytest==8.3.4 +coverage[toml]==7.10.6 +cryptography==45.0.7 +mypy==1.17.1 +pytest==8.4.1 ruff==0.12.11 -trio==0.27.0 +trio==0.30.0 trio-typing==0.10.0 -trustme==1.2.0 -uvicorn==0.32.1 +trustme==1.2.1 +uvicorn==0.35.0 diff --git a/tests/client/test_auth.py b/tests/client/test_auth.py index 7638b8bd68..72674e6f4b 100644 --- a/tests/client/test_auth.py +++ b/tests/client/test_auth.py @@ -326,7 +326,7 @@ async def test_auth_property() -> None: async with httpx.AsyncClient(transport=httpx.MockTransport(app)) as client: assert client.auth is None - client.auth = ("user", "password123") # type: ignore + client.auth = ("user", "password123") assert isinstance(client.auth, httpx.BasicAuth) url = "https://example.org/" diff --git a/tests/client/test_properties.py b/tests/client/test_properties.py index eb8709813b..f9ca9f247f 100644 --- a/tests/client/test_properties.py +++ b/tests/client/test_properties.py @@ -3,35 +3,35 @@ def test_client_base_url(): client = httpx.Client() - client.base_url = "https://www.example.org/" # type: ignore + client.base_url = "https://www.example.org/" assert isinstance(client.base_url, httpx.URL) assert client.base_url == "https://www.example.org/" def test_client_base_url_without_trailing_slash(): client = httpx.Client() - client.base_url = "https://www.example.org/path" # type: ignore + client.base_url = "https://www.example.org/path" assert isinstance(client.base_url, httpx.URL) assert client.base_url == "https://www.example.org/path/" def test_client_base_url_with_trailing_slash(): client = httpx.Client() - client.base_url = "https://www.example.org/path/" # type: ignore + client.base_url = "https://www.example.org/path/" assert isinstance(client.base_url, httpx.URL) assert client.base_url == "https://www.example.org/path/" def test_client_headers(): client = httpx.Client() - client.headers = {"a": "b"} # type: ignore + client.headers = {"a": "b"} assert isinstance(client.headers, httpx.Headers) assert client.headers["A"] == "b" def test_client_cookies(): client = httpx.Client() - client.cookies = {"a": "b"} # type: ignore + client.cookies = {"a": "b"} assert isinstance(client.cookies, httpx.Cookies) mycookies = list(client.cookies.jar) assert len(mycookies) == 1 @@ -42,7 +42,7 @@ def test_client_timeout(): expected_timeout = 12.0 client = httpx.Client() - client.timeout = expected_timeout # type: ignore + client.timeout = expected_timeout assert isinstance(client.timeout, httpx.Timeout) assert client.timeout.connect == expected_timeout diff --git a/tests/client/test_queryparams.py b/tests/client/test_queryparams.py index e5acb0ba20..1c6d587309 100644 --- a/tests/client/test_queryparams.py +++ b/tests/client/test_queryparams.py @@ -17,7 +17,7 @@ def test_client_queryparams_string(): assert client.params["a"] == "b" client = httpx.Client() - client.params = "a=b" # type: ignore + client.params = "a=b" assert isinstance(client.params, httpx.QueryParams) assert client.params["a"] == "b"