import mozunit import pytest from tryselect import push @pytest.mark.parametrize( "method,labels,params,routes,expected", ( pytest.param( "fuzzy", ["task-foo", "task-bar"], None, None, { "parameters": { "optimize_target_tasks": False, "try_task_config": { "env": {"TRY_SELECTOR": "fuzzy"}, "tasks": ["task-bar", "task-foo"], }, }, "version": 2, }, id="basic", ), pytest.param( "fuzzy", ["task-foo"], {"existing_tasks": {"task-foo": "123", "task-bar": "abc"}}, None, { "parameters": { "existing_tasks": {"task-bar": "abc"}, "optimize_target_tasks": False, "try_task_config": { "env": {"TRY_SELECTOR": "fuzzy"}, "tasks": ["task-foo"], }, }, "version": 2, }, id="existing_tasks", ), ), ) def test_generate_try_task_config(method, labels, params, routes, expected): assert ( push.generate_try_task_config(method, labels, params=params, routes=routes) == expected ) def test_get_sys_argv(): input_argv = [ "./mach", "try", "fuzzy", "--full", "--artifact", "--push-to-lando", "--query", "'android-hw !shippable !nofis", "--no-push", ] expected_string = './mach try fuzzy --full --artifact --push-to-lando --query "\'android-hw !shippable !nofis" --no-push' assert push.get_sys_argv(input_argv) == expected_string def test_get_sys_argv_2(): input_argv = [ "./mach", "try", "fuzzy", "--query", "'test-linux1804-64-qr/opt-mochitest-plain-", "--worker-override=t-linux-large=gecko-t/t-linux-2204-wayland-experimental", "--no-push", ] expected_string = './mach try fuzzy --query "\'test-linux1804-64-qr/opt-mochitest-plain-" --worker-override=t-linux-large=gecko-t/t-linux-2204-wayland-experimental --no-push' assert push.get_sys_argv(input_argv) == expected_string if __name__ == "__main__": mozunit.main()