taskgraph.test package¶
Submodules¶
taskgraph.test.test_create module¶
-
class
taskgraph.test.test_create.TestCreate(methodName='runTest')¶ Bases:
unittest.case.TestCase-
fake_create_task(session, task_id, label, task_def)¶
-
setUp()¶
-
tearDown()¶
-
test_create_task_without_dependencies()¶ a task with no dependencies depends on the decision task
-
test_create_tasks()¶
-
test_create_tasks_fails_if_create_fails(*args, **keywargs)¶ creat_tasks fails if a single create_task call fails
-
taskgraph.test.test_cron_util module¶
taskgraph.test.test_decision module¶
taskgraph.test.test_files_changed module¶
-
class
taskgraph.test.test_files_changed.TestCheck(methodName='runTest')¶ Bases:
unittest.case.TestCase-
setUp()¶
-
test_check_match()¶
-
test_check_no_match()¶
-
test_check_no_params()¶
-
-
class
taskgraph.test.test_files_changed.TestGetChangedFiles(methodName='runTest')¶ Bases:
unittest.case.TestCase-
setUp()¶
-
tearDown()¶
-
test_get_changed_files()¶ Get_changed_files correctly gets the list of changed files in a push. This tests against the production hg.mozilla.org so that it will detect any changes in the format of the returned data.
-
taskgraph.test.test_generator module¶
-
class
taskgraph.test.test_generator.FakeKind(name, path, config, graph_config)¶ Bases:
taskgraph.generator.Kind-
load_tasks(parameters, loaded_tasks)¶
-
-
class
taskgraph.test.test_generator.FakeOptimization(mode, *args, **kwargs)¶ Bases:
taskgraph.optimize.OptimizationStrategy-
should_remove_task(task, params, arg)¶
-
-
class
taskgraph.test.test_generator.TestGenerator(methodName='runTest')¶ Bases:
unittest.case.TestCase-
maketgg(target_tasks=None, kinds=[(u'_fake', [])], params=None)¶
-
patch(monkeypatch)¶
-
test_always_target_tasks()¶ The target_task_graph includes tasks with ‘always_target’
-
test_full_task_graph()¶ The full_task_graph property has all tasks, and links
-
test_full_task_set()¶ The full_task_set property has all tasks
-
test_kind_ordering()¶ When task kinds depend on each other, they are loaded in postorder
-
test_optimized_task_graph()¶ The optimized task graph contains task ids
-
test_target_task_graph()¶ The target_task_graph property has the targeted tasks and deps
-
test_target_task_set()¶ The target_task_set property has the targeted tasks
-
-
class
taskgraph.test.test_generator.WithFakeKind(root_dir, parameters)¶
-
taskgraph.test.test_generator.fake_load_graph_config(root_dir)¶
-
taskgraph.test.test_generator.fake_loader(kind, path, config, parameters, loaded_tasks)¶
taskgraph.test.test_graph module¶
-
class
taskgraph.test.test_graph.TestGraph(methodName='runTest')¶ Bases:
unittest.case.TestCase-
assert_postorder(seq, all_nodes)¶
-
assert_preorder(seq, all_nodes)¶
-
diamonds= <Graph nodes=set([u'A', u'C', u'B', u'E', u'D', u'G', u'F', u'I', u'H', u'J']) edges=set([(u'G', u'I', u'L'), (u'E', u'G', u'L'), (u'F', u'I', u'L'), (u'A', u'D', u'L'), (u'D', u'G', u'L'), (u'C', u'H', u'L'), (u'D', u'F', u'L'), (u'B', u'E', u'L'), (u'B', u'D', u'L'), (u'A', u'F', u'L'), (u'H', u'J', u'L'), (u'E', u'H', u'L'), (u'G', u'J', u'L'), (u'C', u'E', u'L')])>¶
-
disjoint= <Graph nodes=set([u'\u03b1', u'\u03b2', u'\u03b3', u'1', u'3', u'2', u'4']) edges=set([(u'4', u'3', u'green'), (u'2', u'1', u'red'), (u'3', u'1', u'red'), (u'3', u'2', u'green'), (u'\u03b2', u'\u03b3', u'\u03ba\u03cc\u03ba\u03ba\u03b9\u03bd\u03bf'), (u'\u03b1', u'\u03b2', u'\u03c0\u03c1\u03ac\u03c3\u03b9\u03bd\u03bf'), (u'\u03b1', u'\u03b3', u'\u03bc\u03c0\u03bb\u03b5')])>¶
-
linear= <Graph nodes=set([u'1', u'3', u'2', u'4']) edges=set([(u'2', u'3', u'L'), (u'1', u'2', u'L'), (u'3', u'4', u'L')])>¶
-
multi_edges= <Graph nodes=set([u'1', u'3', u'2', u'4']) edges=set([(u'4', u'3', u'green'), (u'2', u'1', u'red'), (u'3', u'1', u'red'), (u'3', u'2', u'green'), (u'2', u'1', u'blue'), (u'3', u'2', u'blue')])>¶
-
test_links_dict()¶ link dict for a graph with multiple edges is correct
-
test_named_links_dict()¶ named link dict for a graph with multiple edges is correct
-
test_reverse_links_dict()¶ reverse link dict for a graph with multiple edges is correct
-
test_transitive_closure_disjoint()¶ transitive closure of a disjoint set is a subset
-
test_transitive_closure_disjoint_edges()¶ transitive closure of a disjoint graph keeps those edges
-
test_transitive_closure_empty()¶ transitive closure of an empty set is an empty graph
-
test_transitive_closure_linear()¶ transitive closure of a linear graph includes all nodes in the line
-
test_transitive_closure_multi_edges()¶ transitive closure of a tree with multiple edges between nodes keeps those edges
-
test_transitive_closure_trees()¶ transitive closure of a tree, at two non-root nodes, is the two subtrees
-
test_visit_postorder_diamonds()¶ postorder visit of a graph full of diamonds satisfies invariant
-
test_visit_postorder_disjoint()¶ postorder visit of a disjoint graph satisfies invariant
-
test_visit_postorder_empty()¶ postorder visit of an empty graph is empty
-
test_visit_postorder_multi_edges()¶ postorder visit of a graph with duplicate edges satisfies invariant
-
test_visit_postorder_tree()¶ postorder visit of a tree satisfies invariant
-
test_visit_preorder_diamonds()¶ preorder visit of a graph full of diamonds satisfies invariant
-
test_visit_preorder_disjoint()¶ preorder visit of a disjoint graph satisfies invariant
-
test_visit_preorder_multi_edges()¶ preorder visit of a graph with duplicate edges satisfies invariant
-
test_visit_preorder_tree()¶ preorder visit of a tree satisfies invariant
-
tree= <Graph nodes=set([u'a', u'c', u'b', u'e', u'd', u'g', u'f']) edges=set([(u'b', u'd', u'K'), (u'c', u'f', u'N'), (u'b', u'e', u'K'), (u'a', u'b', u'L'), (u'c', u'g', u'N'), (u'a', u'c', u'L')])>¶
-
taskgraph.test.test_morph module¶
-
class
taskgraph.test.test_morph.MorphTestCase(methodName='runTest')¶ Bases:
unittest.case.TestCase-
make_taskgraph(tasks)¶
-
-
class
taskgraph.test.test_morph.TestApplyJSONeTemplates(methodName='runTest')¶ Bases:
taskgraph.test.test_morph.MorphTestCase-
tasks= [{u'attributes': {}, u'kind': u'build', u'task': {u'tags': {u'kind': u'build'}, u'payload': {u'env': {u'FOO': u'BAR'}}, u'extra': {u'treeherder': {u'symbol': u'B', u'group': u'tc'}}}, u'label': u'a'}, {u'attributes': {}, u'kind': u'test', u'task': {u'tags': {u'kind': u'test'}, u'payload': {u'env': {u'FOO': u'BAR'}}, u'extra': {u'treeherder': {u'symbol': u't', u'group': u'tc'}}}, u'label': u'b'}]¶
-
test_template_artifact()¶
-
test_template_env()¶
-
test_template_rebuild()¶
-
-
class
taskgraph.test.test_morph.TestIndexTask(methodName='runTest')¶ Bases:
taskgraph.test.test_morph.MorphTestCase-
test_make_index_tasks()¶
-
taskgraph.test.test_optimize module¶
-
class
taskgraph.test.test_optimize.Remove¶ Bases:
taskgraph.optimize.OptimizationStrategy-
should_remove_task(task, params, arg)¶
-
-
class
taskgraph.test.test_optimize.Replace¶ Bases:
taskgraph.optimize.OptimizationStrategy-
should_replace_task(task, params, taskid)¶
-
-
class
taskgraph.test.test_optimize.TestOptimize(methodName='runTest')¶ Bases:
unittest.case.TestCase-
assert_remove_tasks(graph, exp_removed, do_not_optimize=set([]))¶
-
assert_replace_tasks(graph, exp_replaced, exp_removed=set([]), exp_label_to_taskid={}, do_not_optimize=None, label_to_taskid=None, removed_tasks=None, existing_tasks=None)¶
-
assert_subgraph(graph, removed_tasks, replaced_tasks, label_to_taskid, exp_subgraph, exp_label_to_taskid)¶
-
make_graph(*tasks_and_edges)¶
-
make_opt_graph(*tasks_and_edges)¶
-
make_task(label, optimization=None, task_def=None, optimized=None, task_id=None, dependencies=None)¶
-
strategies= {u'never': <taskgraph.optimize.OptimizationStrategy object>, u'remove': <taskgraph.test.test_optimize.Remove object>, u'replace': <taskgraph.test.test_optimize.Replace object>}¶
-
test_get_subgraph_no_change()¶ get_subgraph returns a similarly-shaped subgraph when nothing is removed
-
test_get_subgraph_removed()¶ get_subgraph returns a smaller subgraph when tasks are removed
-
test_get_subgraph_removed_dep()¶ get_subgraph raises an Exception when a task depends on a removed task
-
test_get_subgraph_replaced()¶ get_subgraph returns a smaller subgraph when tasks are replaced
-
test_remove_tasks_all()¶ A graph full of optimization=remove has removes everything
-
test_remove_tasks_blocked()¶ Removable tasks that are depended on by non-removable tasks are not removed
-
test_remove_tasks_do_not_optimize()¶ Removable tasks that are marked do_not_optimize are not removed
-
test_remove_tasks_never()¶ A graph full of optimization=never has nothing removed
-
test_replace_tasks_all()¶ All replacable tasks are replaced when strategy is ‘replace’
-
test_replace_tasks_blocked()¶ A task cannot be replaced if it depends on one that was not replaced
-
test_replace_tasks_do_not_optimize()¶ A task cannot be replaced if it depends on one that was not replaced
-
test_replace_tasks_never()¶ No tasks are replaced when strategy is ‘never’
-
test_replace_tasks_removed()¶ A task can be replaced with nothing
-
taskgraph.test.test_parameters module¶
-
class
taskgraph.test.test_parameters.TestCommParameters(methodName='runTest')¶ Bases:
unittest.case.TestCase-
test_Parameters_check()¶ Specifying all of the gecko and comm parameters doesn’t result in an error.
-
test_Parameters_check_extra()¶ If parameters other than the global and comm parameters are specified, an error is reported.
-
test_Parameters_check_missing()¶ If any of the comm parameters are specified, all of them must be specified.
-
vals= {u'release_history': u'release_history', u'try_options': u'try_options', u'owner': u'owner', u'include_nightly': u'include_nightly', u'filters': u'filters', u'pushlog_id': u'pushlog_id', u'message': u'message', u'try_mode': u'try_mode', u'existing_tasks': u'existing_tasks', u'head_ref': u'head_ref', u'build_date': u'build_date', u'build_number': u'build_number', u'head_rev': u'head_rev', u'comm_head_ref': u'comm_head_ref', u'comm_base_repository': u'comm_base_repository', u'base_repository': u'base_repository', u'comm_head_rev': u'comm_head_rev', u'comm_head_repository': u'comm_head_repository', u'do_not_optimize': u'do_not_optimize', u'next_version': u'next_version', u'moz_build_date': u'moz_build_date', u'head_repository': u'head_repository', u'level': u'level', u'optimize_target_tasks': u'optimize_target_tasks', u'target_tasks_method': u'target_tasks_method', u'project': u'project', u'try_task_config': u'try_task_config', u'pushdate': u'pushdate'}¶
-
-
class
taskgraph.test.test_parameters.TestParameters(methodName='runTest')¶ Bases:
unittest.case.TestCase-
test_Parameters_check()¶
-
test_Parameters_check_extra()¶
-
test_Parameters_check_missing()¶
-
test_Parameters_get()¶
-
test_Parameters_immutable()¶
-
test_Parameters_invalid_KeyError()¶ even if the value is present, if it’s not a valid property, raise KeyError
-
test_Parameters_missing_KeyError()¶
-
test_load_parameters_file_json()¶
-
test_load_parameters_file_yaml()¶
-
vals= {u'release_history': u'release_history', u'try_options': u'try_options', u'owner': u'owner', u'include_nightly': u'include_nightly', u'filters': u'filters', u'pushlog_id': u'pushlog_id', u'message': u'message', u'try_mode': u'try_mode', u'existing_tasks': u'existing_tasks', u'head_ref': u'head_ref', u'build_date': u'build_date', u'build_number': u'build_number', u'head_rev': u'head_rev', u'base_repository': u'base_repository', u'do_not_optimize': u'do_not_optimize', u'next_version': u'next_version', u'moz_build_date': u'moz_build_date', u'head_repository': u'head_repository', u'level': u'level', u'optimize_target_tasks': u'optimize_target_tasks', u'target_tasks_method': u'target_tasks_method', u'project': u'project', u'try_task_config': u'try_task_config', u'pushdate': u'pushdate'}¶
-
taskgraph.test.test_target_tasks module¶
-
class
taskgraph.test.test_target_tasks.FakeTryOptionSyntax(message, task_graph, graph_config)¶ Bases:
object-
task_matches(task)¶
-
-
class
taskgraph.test.test_target_tasks.TestTargetTasks(methodName='runTest')¶ Bases:
unittest.case.TestCase-
default_matches(run_on_projects, project)¶
-
fake_TryOptionSyntax(*args, **kwds)¶
-
make_task_graph()¶
-
test_default_all()¶ run_on_projects=[all] includes release, integration, and other projects
-
test_default_integration()¶ run_on_projects=[integration] includes integration projects
-
test_default_nothing()¶ run_on_projects=[] includes nothing
-
test_default_release()¶ run_on_projects=[release] includes release projects
-
test_empty_try()¶ try_mode = None runs nothing
-
test_try_option_syntax()¶ try_mode = try_option_syntax uses TryOptionSyntax
-
test_try_task_config()¶ try_mode = try_task_config uses the try config
-
taskgraph.test.test_taskgraph module¶
taskgraph.test.test_transforms_base module¶
-
class
taskgraph.test.test_transforms_base.TestTransformSequence(methodName='runTest')¶ Bases:
unittest.case.TestCase-
test_sequence()¶
-
-
taskgraph.test.test_transforms_base.trans1(config, tests)¶
-
taskgraph.test.test_transforms_base.trans2(config, tests)¶
taskgraph.test.test_try_option_syntax module¶
-
class
taskgraph.test.test_try_option_syntax.TestTryOptionSyntax(methodName='runTest')¶ Bases:
unittest.case.TestCase-
test_all_email()¶ –all-emails sets notifications
-
test_apostrophe_in_message()¶ apostrophe does not break parsing
-
test_b_d()¶ -b d should produce build_types=[‘debug’]
-
test_b_do()¶ -b do should produce both build_types
-
test_b_dx()¶ -b dx should produce build_types=[‘debug’], silently ignoring the x
-
test_b_o()¶ -b o should produce build_types=[‘opt’]
-
test_build_o()¶ –build o should produce build_types=[‘opt’]
-
test_fail_email()¶ –failure-emails sets notifications
-
test_interactive()¶ –interactive sets interactive
-
test_j_all()¶ -j all sets jobs=None
-
test_j_job()¶ -j somejob sets jobs=[‘somejob’]
-
test_j_jobs()¶ -j job1,job2 sets jobs=[‘job1’, ‘job2’]
-
test_j_twice()¶ -j job1 -j job2 sets jobs=job1, job2
-
test_no_email()¶ no email settings don’t set notifications
-
test_no_retry()¶ –no-retry sets no_retry to true
-
test_p_all()¶ -p all sets platforms=None
-
test_p_expands_ridealongs()¶ -p linux,linux64 includes the RIDEALONG_BUILDS
-
test_p_linux()¶ -p linux sets platforms=[‘linux’, ‘linux-ridealong’]
-
test_p_linux_win32()¶ -p linux,win32 sets platforms=[‘linux’, ‘linux-ridealong’, ‘win32’]
-
test_profile()¶ –geckoProfile sets profile to true
-
test_setenv()¶ –setenv VAR=value adds a environment variables setting to env
-
test_t_all()¶ -t all sets talos=[..whole list..]
-
test_t_none()¶ -t none sets talos=[]
-
test_t_single()¶ -t mochitest-webgl sets talos=[mochitest-webgl]
-
test_tag()¶ –tag TAG sets tag to TAG value
-
test_talos_trigger_tests()¶ –rebuild-talos 10 sets talos_trigger_tests
-
test_trigger_tests()¶ –rebuild 10 sets trigger_tests
-
test_u_alias()¶ -u mochitest-gl sets unittests=[mochitest-webgl]
-
test_u_all()¶ -u all sets unittests=[..whole list..]
-
test_u_chunks()¶ -u gtest-3,gtest-4 selects the third and fourth chunk of gtest
-
test_u_chunks_platforms()¶ -u gtest-1[linux,win32] selects the linux and win32 platforms for chunk 1 of gtest
-
test_u_commas()¶ -u mochitest-webgl,gtest sets unittests=both
-
test_u_multi_alias()¶ -u e10s sets unittests=[all e10s unittests]
-
test_u_none()¶ -u none sets unittests=[]
-
test_u_platform()¶ -u gtest[linux] selects the linux platform for gtest
-
test_u_platforms()¶ -u gtest[linux,win32] selects the linux and win32 platforms for gtest
-
test_u_platforms_negated()¶ -u gtest[-linux] selects all platforms but linux for gtest
-
test_u_platforms_negated_pretty()¶ -u gtest[Ubuntu,-x64] selects just linux for gtest
-
test_u_platforms_pretty()¶ -u gtest[Ubuntu] selects the linux, linux64, linux64-asan, linux64-stylo-disabled, and linux64-stylo-sequential platforms for gtest
-
test_u_single()¶ -u mochitest-webgl sets unittests=[mochitest-webgl]
-
test_unknown_args()¶ unknown arguments are ignored
-
-
taskgraph.test.test_try_option_syntax.talos_task(n, tp, bt=u'opt')¶
-
taskgraph.test.test_try_option_syntax.unittest_task(n, tp, bt=u'opt')¶
taskgraph.test.test_util_attributes module¶
-
class
taskgraph.test.test_util_attributes.Attrmatch(methodName='runTest')¶ Bases:
unittest.case.TestCase-
test_all_matches_required()¶ If only one attribute does not match, the result is False
-
test_callable_attribute()¶ Callable attributes are called and any False causes the match to fail
-
test_literal_attribute()¶ Literal attributes must match exactly
-
test_missing_attribute()¶ If a filtering attribute is not present, no match
-
test_set_attribute()¶ Set attributes require set membership
-
test_trivial_match()¶ Given no conditions, anything matches
-
taskgraph.test.test_util_docker module¶
-
class
taskgraph.test.test_util_docker.TestDocker(methodName='runTest')¶ Bases:
unittest.case.TestCase-
test_create_context_absolute_path()¶
-
test_create_context_extra_directory()¶
-
test_create_context_missing_extra()¶
-
test_create_context_outside_topsrcdir()¶
-
test_create_context_tar_basic()¶
-
test_create_context_topsrcdir_files()¶
-
test_docker_image_default_registry()¶
-
test_docker_image_default_registry_by_tag()¶
-
test_docker_image_explicit_registry()¶
-
test_docker_image_explicit_registry_by_tag()¶
-
test_generate_context_hash()¶
-
taskgraph.test.test_util_parameterization module¶
-
class
taskgraph.test.test_util_parameterization.TestTaskRefs(methodName='runTest')¶ Bases:
unittest.case.TestCase-
do(input, output)¶
-
test_embedded()¶ resolve_task_references resolves ebmedded references
-
test_escaping()¶ resolve_task_references resolves escapes in task references
-
test_in_dict()¶ resolve_task_references resolves task references in a dict
-
test_in_list()¶ resolve_task_references resolves task references in a list
-
test_invalid()¶ resolve_task_references raises a KeyError on reference to an invalid task
-
test_multikey()¶ resolve_task_references is ignored when there is another key in the dict
-
test_multiple()¶ resolve_task_references resolves multiple references in the same string
-
test_no_change()¶ resolve_task_references does nothing when there are no task references
-
taskgraph.test.test_util_python_path module¶
-
class
taskgraph.test.test_util_python_path.TestObject¶ Bases:
object-
testClassProperty= <object object>¶
-
-
class
taskgraph.test.test_util_python_path.TestPythonPath(methodName='runTest')¶ Bases:
unittest.case.TestCase-
test_find_object_exists()¶ find_object finds an existing object
-
test_find_object_no_such_module()¶ find_object raises ImportError for a nonexistent module
-
test_find_object_no_such_object()¶ find_object raises AttributeError for a nonexistent object
-
taskgraph.test.test_util_schema module¶
-
class
taskgraph.test.test_util_schema.TestResolveKeyedBy(methodName='runTest')¶ Bases:
unittest.case.TestCase-
test_match_default()¶
-
test_match_extra_value()¶
-
test_match_nested_exact()¶
-
test_match_partial_regexp()¶
-
test_match_regexp()¶
-
test_multiple_matches()¶
-
test_nested()¶
-
test_no_by()¶
-
test_no_by_dotted()¶
-
test_no_by_empty_dict()¶
-
test_no_by_not_by()¶
-
test_no_by_not_dict()¶
-
test_no_by_not_only_by()¶
-
test_no_match()¶
-