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
()¶
-