taskgraph.test package

Submodules

taskgraph.test.test_actions_util module

class taskgraph.test.test_actions_util.TestCombineTaskGraphFiles(methodName='runTest')

Bases: unittest.case.TestCase

test_no_suffixes()
test_one_suffix(**keywargs)
test_several_suffixes()
class taskgraph.test.test_actions_util.TestRelativize(methodName='runTest')

Bases: unittest.case.TestCase

test_relativize()

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

Hook method for setting up the test fixture before exercising it.

tearDown()

Hook method for deconstructing the test fixture after testing it.

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(**keywargs)

creat_tasks fails if a single create_task call fails

taskgraph.test.test_cron_util module

class taskgraph.test.test_cron_util.TestMatchUtc(methodName='runTest')

Bases: unittest.case.TestCase

test_day_hour_minute()
test_hour_minute()
test_hour_only()
test_invalid_minute()
test_minute_only()
test_weekday_hour_minute()
test_zeroes()

taskgraph.test.test_decision module

class taskgraph.test.test_decision.TestDecision(methodName='runTest')

Bases: unittest.case.TestCase

test_write_artifact_json()
test_write_artifact_yml()
class taskgraph.test.test_decision.TestGetDecisionParameters(methodName='runTest')

Bases: unittest.case.TestCase

setUp()

Hook method for setting up the test fixture before exercising it.

test_no_email_owner(**keywargs)
test_simple_options(**keywargs)
test_try_options(**keywargs)
test_try_syntax_from_message_embedded_try_syntax_multiline()
test_try_syntax_from_message_empty()
test_try_syntax_from_message_initial_try_syntax()
test_try_syntax_from_message_initial_try_syntax_multiline()
test_try_syntax_from_message_no_try_syntax()
test_try_task_config(**keywargs)
ttc_file = u'/builds/worker/checkouts/gecko/try_task_config.json'

taskgraph.test.test_files_changed module

class taskgraph.test.test_files_changed.FakeResponse
json()
class taskgraph.test.test_files_changed.TestCheck(methodName='runTest')

Bases: unittest.case.TestCase

setUp()

Hook method for setting up the test fixture before exercising it.

tearDown()

Hook method for deconstructing the test fixture after testing it.

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

Hook method for setting up the test fixture before exercising it.

tearDown()

Hook method for deconstructing the test fixture after testing it.

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.FakeParameters

Bases: dict

strict = True
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, target_kind=None)

Bases: taskgraph.generator.TaskGraphGenerator

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=frozenset([u'A', u'C', u'B', u'E', u'D', u'G', u'F', u'I', u'H', u'J']), edges=frozenset([(u'E', u'G', u'L'), (u'G', u'I', u'L'), (u'B', u'E', 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'F', u'I', 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=frozenset([u'\u03b1', u'1', u'\u03b3', u'\u03b2', u'4', u'2', u'3']), edges=frozenset([(u'4', u'3', u'green'), (u'2', u'1', u'red'), (u'3', u'1', u'red'), (u'\u03b1', u'\u03b2', u'\u03c0\u03c1\u03ac\u03c3\u03b9\u03bd\u03bf'), (u'3', u'2', u'green'), (u'\u03b2', u'\u03b3', u'\u03ba\u03cc\u03ba\u03ba\u03b9\u03bd\u03bf'), (u'\u03b1', u'\u03b3', u'\u03bc\u03c0\u03bb\u03b5')]))
linear = Graph(nodes=frozenset([u'1', u'3', u'2', u'4']), edges=frozenset([(u'1', u'2', u'L'), (u'2', u'3', u'L'), (u'3', u'4', u'L')]))
multi_edges = Graph(nodes=frozenset([u'1', u'3', u'2', u'4']), edges=frozenset([(u'4', u'3', u'green'), (u'2', u'1', u'red'), (u'3', u'2', u'blue'), (u'3', u'1', u'red'), (u'3', u'2', u'green'), (u'2', u'1', u'blue')]))

link dict for a graph with multiple edges is correct

named link dict for a graph with multiple edges is correct

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=frozenset([u'a', u'c', u'b', u'e', u'd', u'g', u'f']), edges=frozenset([(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

taskgraph.test.test_morph.get_morphed(make_taskgraph)
taskgraph.test.test_morph.make_taskgraph()
taskgraph.test.test_morph.test_make_index_tasks(make_taskgraph)
taskgraph.test.test_morph.test_template_env(get_morphed)
taskgraph.test.test_morph.test_template_gecko_profile(get_morphed, command)
taskgraph.test.test_morph.test_template_rebuild(get_morphed)

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)
make_triangle(**opts)

Make a “triangle” graph like this:

t1 <——– t3
`—- t2 –’
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'app_version': u'app_version', u'base_repository': u'base_repository', u'build_date': 0, u'build_number': 0, u'comm_base_repository': u'comm_base_repository', u'comm_head_ref': u'comm_head_ref', u'comm_head_repository': u'comm_head_repository', u'comm_head_rev': u'comm_head_rev', u'do_not_optimize': [], u'existing_tasks': {}, u'filters': [], u'head_ref': u'head_ref', u'head_repository': u'head_repository', u'head_rev': u'head_rev', u'hg_branch': u'hg_branch', u'level': u'level', u'message': u'message', u'moz_build_date': u'moz_build_date', u'next_version': u'next_version', u'optimize_target_tasks': False, u'owner': u'owner', u'phabricator_diff': u'phabricator_diff', u'project': u'project', u'pushdate': 0, u'pushlog_id': u'pushlog_id', u'release_enable_emefree': False, u'release_enable_partners': False, u'release_eta': None, u'release_history': {}, u'release_partner_build_number': 1, u'release_partner_config': None, u'release_partners': [], u'release_product': None, u'release_type': u'release_type', u'required_signoffs': [], u'signoff_urls': {}, u'target_tasks_method': u'target_tasks_method', u'tasks_for': u'tasks_for', u'try_mode': u'try_mode', u'try_options': None, u'try_task_config': {}, u'version': u'version'}
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()
test_load_parameters_override()

When load_parameters_file is passed overrides, they are included in the generated parameters.

test_load_parameters_override_file()

When load_parameters_file is passed overrides, they overwrite data loaded from a file.

vals = {u'app_version': u'app_version', u'base_repository': u'base_repository', u'build_date': 0, u'build_number': 0, u'do_not_optimize': [], u'existing_tasks': {}, u'filters': [], u'head_ref': u'head_ref', u'head_repository': u'head_repository', u'head_rev': u'head_rev', u'hg_branch': u'hg_branch', u'level': u'level', u'message': u'message', u'moz_build_date': u'moz_build_date', u'next_version': u'next_version', u'optimize_target_tasks': False, u'owner': u'owner', u'phabricator_diff': u'phabricator_diff', u'project': u'project', u'pushdate': 0, u'pushlog_id': u'pushlog_id', u'release_enable_emefree': False, u'release_enable_partners': False, u'release_eta': None, u'release_history': {}, u'release_partner_build_number': 1, u'release_partner_config': None, u'release_partners': [], u'release_product': None, u'release_type': u'release_type', u'required_signoffs': [], u'signoff_urls': {}, u'target_tasks_method': u'target_tasks_method', u'tasks_for': u'tasks_for', u'try_mode': u'try_mode', u'try_options': None, u'try_task_config': {}, u'version': u'version'}

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(attributes, parameters)
default_matches_hg_branch(run_on_hg_branches, hg_branch)
default_matches_project(run_on_projects, project)
fake_TryOptionSyntax(**kwds)
make_task_graph()
test_default_all()

run_on_projects=[all] includes release, integration, and other projects

test_default_hg_branch()
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_taskcluster_yml module

taskgraph.test.test_taskgraph module

class taskgraph.test.test_taskgraph.TestTaskGraph(methodName='runTest')

Bases: unittest.case.TestCase

maxDiff = None
simple_graph = TaskGraph(tasks={u'a': Task(kind=u'fancy', label=u'a', attributes={u'kind': u'fancy'}, task={u'task': u'def'}, task_id=None, optimization={u'seta': None}, dependencies={u'prereq': u'b'}, soft_dependencies=[], release_artifacts=None), u'b': Task(kind=u'pre', label=u'b', attributes={u'kind': u'pre'}, task={u'task': u'def2'}, task_id=None, optimization={u'seta': None}, dependencies={}, soft_dependencies=[], release_artifacts=None)}, graph=Graph(nodes=frozenset([u'a', u'b']), edges=frozenset([(u'a', u'b', u'prereq')])))
test_contains()
test_round_trip()
test_taskgraph_to_json()

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_transforms_job module

Tests for the ‘job’ transform subsystem.

taskgraph.test.test_transforms_job.config()
taskgraph.test.test_transforms_job.test_worker_caches(task, transform)
taskgraph.test.test_transforms_job.transform(monkeypatch, config)

Run the job transforms on the specified task but return the inputs to configure_taskdesc_for_run without executing it.

This gives test functions an easy way to generate the inputs required for many of the run_using subsystems.

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

–artifact sets artifact to true

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-webgl1-core,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 and linux64-stylo-sequential platforms for gtest

test_u_single()

-u mochitest-webgl1-core sets unittests=[mochitest-webgl1-core]

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

class taskgraph.test.test_util_attributes.MatchRunOnProjects(methodName='runTest')

Bases: unittest.case.TestCase

test_all()
test_combo()
test_empty()
test_integration()
test_release()

taskgraph.test.test_util_docker module

class taskgraph.test.test_util_docker.TestDocker(methodName='runTest')

Bases: unittest.case.TestCase

test_create_context_absolute_path(**kw)
test_create_context_extra_directory(**kw)
test_create_context_missing_extra(**kw)
test_create_context_outside_topsrcdir(**kw)
test_create_context_tar_basic(**kw)
test_create_context_topsrcdir_files(**kw)
test_docker_image_default_registry(**kw)
test_docker_image_default_registry_by_tag(**kw)
test_docker_image_explicit_registry(**kw)
test_docker_image_explicit_registry_by_tag(**kw)
test_generate_context_hash(**kw)

taskgraph.test.test_util_parameterization module

class taskgraph.test.test_util_parameterization.TestArtifactRefs(methodName='runTest')

Bases: unittest.case.TestCase

do(input, output)
test_in_dict()

resolve_task_references resolves artifact references in a dict

test_in_list()

resolve_task_references resolves artifact references in a list

test_in_string()

resolve_task_references resolves artifact references embedded in a string

test_invalid()

resolve_task_references ignores badly-formatted artifact references

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

class taskgraph.test.test_util_parameterization.TestTimestamps(methodName='runTest')

Bases: unittest.case.TestCase

test_appears_with_other_keys()
test_buried_replacement()
test_no_change()

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_runnable_jobs module

class taskgraph.test.test_util_runnable_jobs.TestRunnableJobs(methodName='runTest')

Bases: unittest.case.TestCase

make_taskgraph(tasks)
tasks = [{'attributes': {}, 'kind': 'build', 'task': {'extra': {'treeherder': {'symbol': 'B'}}}, 'label': 'a'}, {'attributes': {}, 'kind': 'test', 'task': {'extra': {'treeherder': {'machine': {'platform': 'linux64'}, 'groupName': 'Some group', 'groupSymbol': 'GS', 'symbol': 't', 'collection': {'opt': True}}}}, 'label': 'b'}]
test_taskgraph_to_runnable_jobs()

taskgraph.test.test_util_schema module

class taskgraph.test.test_util_schema.TestCheckSchema(methodName='runTest')

Bases: unittest.case.TestCase

test_extend_schema()

Extending a schema applies taskgraph checks.

test_extend_schema_twice()

Extending a schema twice applies taskgraph checks.

test_schema()

Creating a schema applies taskgraph checks.

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

When the key referenced in by-* doesn’t exist, and there is a default value, that value is used as the result.

test_no_key_no_default()

When the key referenced in by-* doesn’t exist, and there is not default value, an exception is raised.

test_no_match()
class taskgraph.test.test_util_schema.TestValidateSchema(methodName='runTest')

Bases: unittest.case.TestCase

test_invalid()
test_valid()

taskgraph.test.test_util_taskcluster module

class taskgraph.test.test_util_taskcluster.TestTCUtils(methodName='runTest')

Bases: unittest.case.TestCase

test_parse_time()

taskgraph.test.test_util_templates module

class taskgraph.test.test_util_templates.MergeTest(methodName='runTest')

Bases: unittest.case.TestCase

test_merge()
test_merge_by()
test_merge_diff_types()
test_merge_multiple_by()
test_merge_to_dicts()
test_merge_to_lists()

taskgraph.test.test_util_time module

class taskgraph.test.test_util_time.FromNowTest(methodName='runTest')

Bases: unittest.case.TestCase

test_invalid_str()
test_json_from_now()
test_json_from_now_utc_now()
test_missing_unit()
test_missing_unknown_unit()
test_value_of()

taskgraph.test.test_util_treeherder module

class taskgraph.test.test_util_treeherder.TestSymbols(methodName='runTest')

Bases: unittest.case.TestCase

test_add_suffix_no_group()
test_add_suffix_with_group()
test_join_no_group()
test_join_with_group()
test_split_no_group()
test_split_with_group()

taskgraph.test.test_util_yaml module

class taskgraph.test.test_util_yaml.TestYaml(methodName='runTest')

Bases: unittest.case.TestCase

test_load()

Module contents