diff --git a/pyproject.toml b/pyproject.toml index 67bebcc01..ac58eb09c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -16,6 +16,7 @@ classifiers = [ "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", + "Programming Language :: Python :: 3.14", "Topic :: Software Development", ] requires-python = ">=3.9" diff --git a/taskcluster/kinds/docker-image/kind.yml b/taskcluster/kinds/docker-image/kind.yml index 9e090780a..2de827bc2 100644 --- a/taskcluster/kinds/docker-image/kind.yml +++ b/taskcluster/kinds/docker-image/kind.yml @@ -3,7 +3,7 @@ # file, You can obtain one at http://mozilla.org/MPL/2.0/. --- meta: - - &uv_version 0.6.1 + - &uv_version 0.9.3 loader: taskgraph.loader.transform:loader @@ -29,7 +29,7 @@ tasks: python: symbol: I(py) args: - PYTHON_VERSIONS: "3.13 3.12 3.11 3.10 3.9" + PYTHON_VERSIONS: "3.14 3.13 3.12 3.11 3.10 3.9" UV_VERSION: *uv_version run-task: symbol: I(rt) diff --git a/taskcluster/kinds/test/kind.yml b/taskcluster/kinds/test/kind.yml index c7520dafd..443df1050 100644 --- a/taskcluster/kinds/test/kind.yml +++ b/taskcluster/kinds/test/kind.yml @@ -42,7 +42,7 @@ tasks: matrix: set-name: "unit-py{matrix[python]}" substitution-fields: [description, run.command, treeherder, worker] - python: ["313", "312", "311", "310", "39"] + python: ["314", "313", "312", "311", "310", "39"] worker: artifacts: - type: file diff --git a/test/test_main.py b/test/test_main.py index 3e175fa07..8579da12f 100644 --- a/test/test_main.py +++ b/test/test_main.py @@ -65,14 +65,23 @@ def test_show_taskgraph_attr(run_taskgraph, capsys, attr, expected): def test_show_taskgraph_parallel(run_taskgraph): + # Test that parallel execution works correctly with valid parameters res = run_taskgraph(["full", "-p", "taskcluster/test/params"]) assert res == 0 - # Craft params to cause an exception - res = run_taskgraph( - ["full", "-p", "taskcluster/test/params"], params={"_kinds": None} - ) - assert res == 1 + +def test_show_taskgraph_parallel_bad_params(tmp_path): + # Create parameter files that will cause processing errors + bad_params_dir = tmp_path / "bad_params" + bad_params_dir.mkdir() + (bad_params_dir / "invalid-yaml.yml").write_text("invalid: yaml: [syntax error") + + try: + result = taskgraph_main(["full", "-p", str(bad_params_dir)]) + except SystemExit as e: + result = e.code + + assert result == 1 def test_show_taskgraph_force_local_files_changed(mocker, run_taskgraph):