コード例 #1
0
ファイル: test_workflow.py プロジェクト: Kami/orquesta
    def test_task_status_empty_context(self):
        task_route = 0
        task_name = 't1'
        task_flow_pointer_id = constants.TASK_STATE_ROUTE_FORMAT % (task_name, str(task_route))

        context = None
        self.assertEqual(funcs.task_status_(context, task_name, task_route), statuses.UNSET)

        context = {}
        self.assertEqual(funcs.task_status_(context, task_name, task_route), statuses.UNSET)

        context = {'__state': None}
        self.assertEqual(funcs.task_status_(context, task_name, task_route), statuses.UNSET)

        context = {'__state': {}}
        self.assertEqual(funcs.task_status_(context, task_name, task_route), statuses.UNSET)

        context = {'__state': {'tasks': None}}
        self.assertEqual(funcs.task_status_(context, task_name, task_route), statuses.UNSET)

        context = {'__state': {'tasks': {}}}
        self.assertEqual(funcs.task_status_(context, task_name, task_route), statuses.UNSET)

        task_pointers = {task_flow_pointer_id: None}
        context = {'__state': {'tasks': task_pointers}}
        self.assertEqual(funcs.task_status_(context, task_name, task_route), statuses.UNSET)

        task_pointers = {task_flow_pointer_id: 0}
        context = {'__state': {'tasks': task_pointers, 'sequence': [None]}}
        self.assertEqual(funcs.task_status_(context, task_name, task_route), statuses.UNSET)
コード例 #2
0
    def test_task_status_empty_context_with_no_given_route_but_current_task_set(
            self):
        task_route = 0
        task_name = 't1'
        task_flow_pointer_id = constants.TASK_STATE_ROUTE_FORMAT % (
            task_name, str(task_route))
        task_pointers = {task_flow_pointer_id: None}

        context_test_cases = [{}, {
            '__state': None
        }, {
            '__state': {}
        }, {
            '__state': {
                'tasks': None
            }
        }, {
            '__state': {
                'tasks': task_pointers
            }
        }, {
            '__state': {
                'tasks': task_pointers,
                'sequence': [None]
            }
        }]

        for context in context_test_cases:
            context['__current_task'] = {'id': task_name, 'route': task_route}
            self.assertEqual(funcs.task_status_(context, task_name),
                             statuses.UNSET)
コード例 #3
0
ファイル: test_workflow.py プロジェクト: Kami/orquesta
    def test_task_status(self):
        task_route = 0
        task_name = 't1'
        task_flow_pointer_id = constants.TASK_STATE_ROUTE_FORMAT % (task_name, str(task_route))

        task_pointers = {task_flow_pointer_id: 0}
        context = {'__state': {'tasks': task_pointers, 'sequence': [{'status': statuses.RUNNING}]}}
        actual_task_status = funcs.task_status_(context, task_name, route=task_route)
        self.assertEqual(actual_task_status, statuses.RUNNING)
コード例 #4
0
    def test_task_status(self):
        task_route = 0
        task_name = "t1"
        task_flow_pointer_id = constants.TASK_STATE_ROUTE_FORMAT % (task_name, str(task_route))

        task_pointers = {task_flow_pointer_id: 0}
        context = {"__state": {"tasks": task_pointers, "sequence": [{"status": statuses.RUNNING}]}}
        actual_task_status = funcs.task_status_(context, task_name, route=task_route)
        self.assertEqual(actual_task_status, statuses.RUNNING)
コード例 #5
0
    def test_task_status_empty_context_with_no_given_route_but_current_task_set(self):
        task_route = 0
        task_name = "t1"
        task_flow_pointer_id = constants.TASK_STATE_ROUTE_FORMAT % (task_name, str(task_route))
        task_pointers = {task_flow_pointer_id: None}

        context_test_cases = [
            {},
            {"__state": None},
            {"__state": {}},
            {"__state": {"tasks": None}},
            {"__state": {"tasks": task_pointers}},
            {"__state": {"tasks": task_pointers, "sequence": [None]}},
        ]

        for context in context_test_cases:
            context["__current_task"] = {"id": task_name, "route": task_route}
            self.assertEqual(funcs.task_status_(context, task_name), statuses.UNSET)
コード例 #6
0
ファイル: test_workflow.py プロジェクト: Kami/orquesta
    def test_task_status_of_tasks_along_splits(self):
        task_pointers = {
            't1__r0': 0,
            't2__r0': 1,
            't3__r0': 2,
            't4__r1': 3,
            't4__r2': 4,
            't5__r1': 5,
            't5__r2': 6,
            't6__r1': 7,
            't6__r2': 8,
            't7__r3': 9,
            't7__r4': 10,
            't7__r5': 11,
            't7__r6': 12
        }

        task_flow_entries = [
            {'id': 't1', 'route': 0, 'status': statuses.SUCCEEDED},
            {'id': 't2', 'route': 0, 'status': statuses.SUCCEEDED},
            {'id': 't3', 'route': 0, 'status': statuses.SUCCEEDED},
            {'id': 't4', 'route': 1, 'status': statuses.SUCCEEDED},
            {'id': 't4', 'route': 2, 'status': statuses.FAILED},
            {'id': 't5', 'route': 1, 'status': statuses.SUCCEEDED},
            {'id': 't5', 'route': 2, 'status': statuses.FAILED},
            {'id': 't6', 'route': 1, 'status': statuses.SUCCEEDED},
            {'id': 't6', 'route': 2, 'status': statuses.FAILED},
            {'id': 't7', 'route': 3, 'status': statuses.SUCCEEDED},
            {'id': 't7', 'route': 4, 'status': statuses.FAILED},
            {'id': 't7', 'route': 5, 'status': statuses.RUNNING},
            {'id': 't7', 'route': 6, 'status': statuses.DELAYED}
        ]

        routes = [
            [],
            ['t2__t0'],
            ['t3__t0'],
            ['t2__t0', 't5__t0'],
            ['t3__t0', 't5__t0'],
            ['t2__t0', 't6__t0'],
            ['t3__t0', 't6__t0']
        ]

        context = {
            '__state': {
                'tasks': task_pointers,
                'sequence': task_flow_entries,
                'routes': routes
            }
        }

        # Check the task statuses along route 1.
        current_ctx = copy.deepcopy(context)
        current_ctx['__current_task'] = {'id': 't7', 'route': 3}
        self.assertEqual(funcs.task_status_(current_ctx, 't1'), statuses.SUCCEEDED)
        self.assertEqual(funcs.task_status_(current_ctx, 't2'), statuses.SUCCEEDED)
        self.assertEqual(funcs.task_status_(current_ctx, 't3'), statuses.SUCCEEDED)
        self.assertEqual(funcs.task_status_(current_ctx, 't4'), statuses.SUCCEEDED)
        self.assertEqual(funcs.task_status_(current_ctx, 't5'), statuses.SUCCEEDED)
        self.assertEqual(funcs.task_status_(current_ctx, 't6'), statuses.SUCCEEDED)
        self.assertEqual(funcs.task_status_(current_ctx, 't7'), statuses.SUCCEEDED)

        # Check the task statuses along route 2.
        current_ctx = copy.deepcopy(context)
        current_ctx['__current_task'] = {'id': 't7', 'route': 4}
        self.assertEqual(funcs.task_status_(current_ctx, 't1'), statuses.SUCCEEDED)
        self.assertEqual(funcs.task_status_(current_ctx, 't2'), statuses.SUCCEEDED)
        self.assertEqual(funcs.task_status_(current_ctx, 't3'), statuses.SUCCEEDED)
        self.assertEqual(funcs.task_status_(current_ctx, 't4'), statuses.FAILED)
        self.assertEqual(funcs.task_status_(current_ctx, 't5'), statuses.FAILED)
        self.assertEqual(funcs.task_status_(current_ctx, 't6'), statuses.FAILED)
        self.assertEqual(funcs.task_status_(current_ctx, 't7'), statuses.FAILED)

        # Check the task statuses along route 3.
        current_ctx = copy.deepcopy(context)
        current_ctx['__current_task'] = {'id': 't7', 'route': 5}
        self.assertEqual(funcs.task_status_(current_ctx, 't1'), statuses.SUCCEEDED)
        self.assertEqual(funcs.task_status_(current_ctx, 't2'), statuses.SUCCEEDED)
        self.assertEqual(funcs.task_status_(current_ctx, 't3'), statuses.SUCCEEDED)
        self.assertEqual(funcs.task_status_(current_ctx, 't4'), statuses.SUCCEEDED)
        self.assertEqual(funcs.task_status_(current_ctx, 't5'), statuses.SUCCEEDED)
        self.assertEqual(funcs.task_status_(current_ctx, 't6'), statuses.SUCCEEDED)
        self.assertEqual(funcs.task_status_(current_ctx, 't7'), statuses.RUNNING)

        # Check the task statuses along route 4.
        current_ctx = copy.deepcopy(context)
        current_ctx['__current_task'] = {'id': 't7', 'route': 6}
        self.assertEqual(funcs.task_status_(current_ctx, 't1'), statuses.SUCCEEDED)
        self.assertEqual(funcs.task_status_(current_ctx, 't2'), statuses.SUCCEEDED)
        self.assertEqual(funcs.task_status_(current_ctx, 't3'), statuses.SUCCEEDED)
        self.assertEqual(funcs.task_status_(current_ctx, 't4'), statuses.FAILED)
        self.assertEqual(funcs.task_status_(current_ctx, 't5'), statuses.FAILED)
        self.assertEqual(funcs.task_status_(current_ctx, 't6'), statuses.FAILED)
        self.assertEqual(funcs.task_status_(current_ctx, 't7'), statuses.DELAYED)
コード例 #7
0
ファイル: test_workflow.py プロジェクト: Kami/orquesta
    def test_task_status_of_tasks_along_split(self):
        task_pointers = {
            't1__r0': 0,
            't2__r0': 1,
            't3__r0': 2,
            't4__r1': 3,
            't4__r2': 4,
            't5__r1': 5,
            't5__r2': 6,
            't6__r1': 7,
            't6__r2': 8
        }

        task_flow_entries = [
            {'id': 't1', 'route': 0, 'status': statuses.SUCCEEDED},
            {'id': 't2', 'route': 0, 'status': statuses.SUCCEEDED},
            {'id': 't3', 'route': 0, 'status': statuses.SUCCEEDED},
            {'id': 't4', 'route': 1, 'status': statuses.SUCCEEDED},
            {'id': 't4', 'route': 2, 'status': statuses.FAILED},
            {'id': 't5', 'route': 1, 'status': statuses.SUCCEEDED},
            {'id': 't5', 'route': 2, 'status': statuses.FAILED},
            {'id': 't6', 'route': 1, 'status': statuses.SUCCEEDED},
            {'id': 't6', 'route': 2, 'status': statuses.FAILED},
        ]

        routes = [
            [],
            ['t2__t0'],
            ['t3__t0'],
        ]

        context = {
            '__state': {
                'tasks': task_pointers,
                'sequence': task_flow_entries,
                'routes': routes
            }
        }

        # Check the task statuses along route 1.
        current_ctx = copy.deepcopy(context)
        current_ctx['__current_task'] = {'id': 't6', 'route': 1}
        self.assertEqual(funcs.task_status_(current_ctx, 't1'), statuses.SUCCEEDED)
        self.assertEqual(funcs.task_status_(current_ctx, 't2'), statuses.SUCCEEDED)
        self.assertEqual(funcs.task_status_(current_ctx, 't3'), statuses.SUCCEEDED)
        self.assertEqual(funcs.task_status_(current_ctx, 't4'), statuses.SUCCEEDED)
        self.assertEqual(funcs.task_status_(current_ctx, 't5'), statuses.SUCCEEDED)
        self.assertEqual(funcs.task_status_(current_ctx, 't6'), statuses.SUCCEEDED)

        # Check the task statuses along route 2.
        current_ctx = copy.deepcopy(context)
        current_ctx['__current_task'] = {'id': 't6', 'route': 2}
        self.assertEqual(funcs.task_status_(current_ctx, 't1'), statuses.SUCCEEDED)
        self.assertEqual(funcs.task_status_(current_ctx, 't2'), statuses.SUCCEEDED)
        self.assertEqual(funcs.task_status_(current_ctx, 't3'), statuses.SUCCEEDED)
        self.assertEqual(funcs.task_status_(current_ctx, 't4'), statuses.FAILED)
        self.assertEqual(funcs.task_status_(current_ctx, 't5'), statuses.FAILED)
        self.assertEqual(funcs.task_status_(current_ctx, 't6'), statuses.FAILED)
コード例 #8
0
    def test_task_status_of_tasks_along_splits(self):
        task_pointers = {
            "t1__r0": 0,
            "t2__r0": 1,
            "t3__r0": 2,
            "t4__r1": 3,
            "t4__r2": 4,
            "t5__r1": 5,
            "t5__r2": 6,
            "t6__r1": 7,
            "t6__r2": 8,
            "t7__r3": 9,
            "t7__r4": 10,
            "t7__r5": 11,
            "t7__r6": 12,
        }

        task_flow_entries = [
            {"id": "t1", "route": 0, "status": statuses.SUCCEEDED},
            {"id": "t2", "route": 0, "status": statuses.SUCCEEDED},
            {"id": "t3", "route": 0, "status": statuses.SUCCEEDED},
            {"id": "t4", "route": 1, "status": statuses.SUCCEEDED},
            {"id": "t4", "route": 2, "status": statuses.FAILED},
            {"id": "t5", "route": 1, "status": statuses.SUCCEEDED},
            {"id": "t5", "route": 2, "status": statuses.FAILED},
            {"id": "t6", "route": 1, "status": statuses.SUCCEEDED},
            {"id": "t6", "route": 2, "status": statuses.FAILED},
            {"id": "t7", "route": 3, "status": statuses.SUCCEEDED},
            {"id": "t7", "route": 4, "status": statuses.FAILED},
            {"id": "t7", "route": 5, "status": statuses.RUNNING},
            {"id": "t7", "route": 6, "status": statuses.DELAYED},
        ]

        routes = [
            [],
            ["t2__t0"],
            ["t3__t0"],
            ["t2__t0", "t5__t0"],
            ["t3__t0", "t5__t0"],
            ["t2__t0", "t6__t0"],
            ["t3__t0", "t6__t0"],
        ]

        context = {
            "__state": {"tasks": task_pointers, "sequence": task_flow_entries, "routes": routes}
        }

        # Check the task statuses along route 1.
        current_ctx = json_util.deepcopy(context)
        current_ctx["__current_task"] = {"id": "t7", "route": 3}
        self.assertEqual(funcs.task_status_(current_ctx, "t1"), statuses.SUCCEEDED)
        self.assertEqual(funcs.task_status_(current_ctx, "t2"), statuses.SUCCEEDED)
        self.assertEqual(funcs.task_status_(current_ctx, "t3"), statuses.SUCCEEDED)
        self.assertEqual(funcs.task_status_(current_ctx, "t4"), statuses.SUCCEEDED)
        self.assertEqual(funcs.task_status_(current_ctx, "t5"), statuses.SUCCEEDED)
        self.assertEqual(funcs.task_status_(current_ctx, "t6"), statuses.SUCCEEDED)
        self.assertEqual(funcs.task_status_(current_ctx, "t7"), statuses.SUCCEEDED)

        # Check the task statuses along route 2.
        current_ctx = json_util.deepcopy(context)
        current_ctx["__current_task"] = {"id": "t7", "route": 4}
        self.assertEqual(funcs.task_status_(current_ctx, "t1"), statuses.SUCCEEDED)
        self.assertEqual(funcs.task_status_(current_ctx, "t2"), statuses.SUCCEEDED)
        self.assertEqual(funcs.task_status_(current_ctx, "t3"), statuses.SUCCEEDED)
        self.assertEqual(funcs.task_status_(current_ctx, "t4"), statuses.FAILED)
        self.assertEqual(funcs.task_status_(current_ctx, "t5"), statuses.FAILED)
        self.assertEqual(funcs.task_status_(current_ctx, "t6"), statuses.FAILED)
        self.assertEqual(funcs.task_status_(current_ctx, "t7"), statuses.FAILED)

        # Check the task statuses along route 3.
        current_ctx = json_util.deepcopy(context)
        current_ctx["__current_task"] = {"id": "t7", "route": 5}
        self.assertEqual(funcs.task_status_(current_ctx, "t1"), statuses.SUCCEEDED)
        self.assertEqual(funcs.task_status_(current_ctx, "t2"), statuses.SUCCEEDED)
        self.assertEqual(funcs.task_status_(current_ctx, "t3"), statuses.SUCCEEDED)
        self.assertEqual(funcs.task_status_(current_ctx, "t4"), statuses.SUCCEEDED)
        self.assertEqual(funcs.task_status_(current_ctx, "t5"), statuses.SUCCEEDED)
        self.assertEqual(funcs.task_status_(current_ctx, "t6"), statuses.SUCCEEDED)
        self.assertEqual(funcs.task_status_(current_ctx, "t7"), statuses.RUNNING)

        # Check the task statuses along route 4.
        current_ctx = json_util.deepcopy(context)
        current_ctx["__current_task"] = {"id": "t7", "route": 6}
        self.assertEqual(funcs.task_status_(current_ctx, "t1"), statuses.SUCCEEDED)
        self.assertEqual(funcs.task_status_(current_ctx, "t2"), statuses.SUCCEEDED)
        self.assertEqual(funcs.task_status_(current_ctx, "t3"), statuses.SUCCEEDED)
        self.assertEqual(funcs.task_status_(current_ctx, "t4"), statuses.FAILED)
        self.assertEqual(funcs.task_status_(current_ctx, "t5"), statuses.FAILED)
        self.assertEqual(funcs.task_status_(current_ctx, "t6"), statuses.FAILED)
        self.assertEqual(funcs.task_status_(current_ctx, "t7"), statuses.DELAYED)