Source code
Revision control
Copy as Markdown
Other Tools
Test Info:
- Manifest: tools/tryselect/test/python.toml
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
import mozunit
import pytest
from tryselect.selectors.auto import AutoParser
def test_strategy_validation():
parser = AutoParser()
args = parser.parse_args(["--strategy", "relevant_tests"])
assert args.strategy == "gecko_taskgraph.optimize:tryselect.relevant_tests"
args = parser.parse_args([
"--strategy",
"gecko_taskgraph.optimize:experimental.relevant_tests",
])
assert args.strategy == "gecko_taskgraph.optimize:experimental.relevant_tests"
with pytest.raises(SystemExit):
parser.parse_args(["--strategy", "gecko_taskgraph.optimize:tryselect"])
with pytest.raises(SystemExit):
parser.parse_args(["--strategy", "foo"])
with pytest.raises(SystemExit):
parser.parse_args(["--strategy", "foo:bar"])
def test_returns_zero_exit_code(run_mach):
"""Test that mach try auto returns exit code 0 when selector returns None."""
# Run with --no-push which causes push_to_try to return None
# The exit code should be normalized to 0
assert run_mach(["try", "auto", "--no-push"]) == 0
def test_returns_zero_with_job_id(run_mach, mock_push_to_lando_try):
"""Test that mach try auto returns 0 even when push_to_lando_try returns job data."""
assert run_mach(["try", "auto"]) == 0
def test_returns_error_exit_code(run_mach):
"""Test that mach try commands return exit code 1 for runtime validation errors."""
# Use 'try again' with invalid index to trigger a runtime error (not argparse)
# This tests that our mach_commands.py run() preserves error code 1
assert run_mach(["try", "again", "--index", "invalid_value"]) == 1
if __name__ == "__main__":
mozunit.main()