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"