fune/taskcluster/taskgraph/test/test_taskgraph.py
Dustin J. Mitchell a39d3b7ea3 Bug 1333255: use transforms to make docker image tasks, too; r=jonasfj
MozReview-Commit-ID: Eke3TjLbEfE

--HG--
extra : rebase_source : b91aa6733c26aed2f8f40de73dfef6ae863d1899
2017-03-08 20:52:13 +00:00

56 lines
1.9 KiB
Python

# 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/.
from __future__ import absolute_import, print_function, unicode_literals
import unittest
from ..graph import Graph
from ..task.docker_image import DockerImageTask
from ..task.transform import TransformTask
from ..taskgraph import TaskGraph
from mozunit import main
from taskgraph.util.docker import INDEX_PREFIX
class TestTaskGraph(unittest.TestCase):
def test_from_json(self):
task = {
"routes": [],
"extra": {
"imageMeta": {
"contextHash": "<hash>",
"imageName": "<image>",
"level": "1"
}
}
}
index_paths = ["{}.level-{}.<image>.hash.<hash>".format(INDEX_PREFIX, level)
for level in reversed(range(1, 4))]
graph = TaskGraph(tasks={
'a': TransformTask(
kind='fancy',
task={
'label': 'a',
'attributes': {},
'dependencies': {},
'when': {},
'task': {'task': 'def'},
}),
'b': DockerImageTask(kind='docker-image',
task={
'label': 'b',
'attributes': {},
'task': task,
'index_paths': index_paths,
}),
}, graph=Graph(nodes={'a', 'b'}, edges=set()))
tasks, new_graph = TaskGraph.from_json(graph.to_json())
self.assertEqual(graph.tasks['a'], new_graph.tasks['a'])
self.assertEqual(graph, new_graph)
if __name__ == '__main__':
main()