예제 #1
0
class TestPlan(unittest.TestCase):
    def setUp(self):
        self.plan = Plan()
        for i in range(4):
            self.plan.add(generate_definition('vpc', i))

    def test_add(self):
        first_id = 'vpc.1'
        self.assertIn(first_id, self.plan)
        self.assertIsInstance(self.plan[first_id], BlueprintContext)

    def test_status(self):
        self.assertEqual(len(self.plan.list_submitted()), 0)
        self.assertEqual(len(self.plan.list_completed()), 0)
        self.assertEqual(len(self.plan.list_skipped()), 0)
        self.assertEqual(len(self.plan.list_pending()), 4)
        self.plan.submit('vpc.1')
        self.assertEqual(len(self.plan.list_submitted()), 1)
        self.assertEqual(len(self.plan.list_completed()), 0)
        self.assertEqual(len(self.plan.list_skipped()), 0)
        self.assertEqual(len(self.plan.list_pending()), 4)
        self.plan.complete('vpc.1')
        self.assertEqual(len(self.plan.list_submitted()), 0)
        self.assertEqual(len(self.plan.list_completed()), 1)
        self.assertEqual(len(self.plan.list_skipped()), 0)
        self.assertEqual(len(self.plan.list_pending()), 3)
        self.assertFalse(self.plan.completed)
        self.plan.skip('vpc.2')
        self.assertEqual(len(self.plan.list_submitted()), 0)
        self.assertEqual(len(self.plan.list_completed()), 1)
        self.assertEqual(len(self.plan.list_skipped()), 1)
        self.assertEqual(len(self.plan.list_pending()), 2)
        for i in range(4):
            self.plan.complete("vpc.%d" % i)
        self.assertTrue(self.plan.completed)
예제 #2
0
class TestPlan(unittest.TestCase):
    def setUp(self):
        self.plan = Plan()
        for i in range(4):
            self.plan.add(generate_definition('vpc', i))

    def test_add(self):
        first_id = 'vpc.1'
        self.assertIn(first_id, self.plan)
        self.assertIsInstance(self.plan[first_id], BlueprintContext)

    def test_status(self):
        self.assertEqual(len(self.plan.list_submitted()), 0)
        self.assertEqual(len(self.plan.list_completed()), 0)
        self.assertEqual(len(self.plan.list_skipped()), 0)
        self.assertEqual(len(self.plan.list_pending()), 4)
        self.plan.submit('vpc.1')
        self.assertEqual(len(self.plan.list_submitted()), 1)
        self.assertEqual(len(self.plan.list_completed()), 0)
        self.assertEqual(len(self.plan.list_skipped()), 0)
        self.assertEqual(len(self.plan.list_pending()), 4)
        self.plan.complete('vpc.1')
        self.assertEqual(len(self.plan.list_submitted()), 0)
        self.assertEqual(len(self.plan.list_completed()), 1)
        self.assertEqual(len(self.plan.list_skipped()), 0)
        self.assertEqual(len(self.plan.list_pending()), 3)
        self.assertFalse(self.plan.completed)
        self.plan.skip('vpc.2')
        self.assertEqual(len(self.plan.list_submitted()), 0)
        self.assertEqual(len(self.plan.list_completed()), 1)
        self.assertEqual(len(self.plan.list_skipped()), 1)
        self.assertEqual(len(self.plan.list_pending()), 2)
        for i in range(4):
            self.plan.complete("vpc.%d" % i)
        self.assertTrue(self.plan.completed)
예제 #3
0
파일: test_plan.py 프로젝트: meloxl/stacker
    def test_execute_plan_with_watchers(self, patched_multiprocessing):
        watch_func = mock.MagicMock()
        plan = Plan(description="Test", sleep_time=0, watch_func=watch_func)
        previous_stack = None
        for i in range(5):
            overrides = {}
            if previous_stack:
                overrides["requires"] = [previous_stack.fqn]
            stack = Stack(
                definition=generate_definition("vpc", i, **overrides),
                context=self.context,
            )
            previous_stack = stack
            plan.add(
                stack=stack,
                run_func=self._run_func,
                requires=stack.requires,
            )

        plan.execute()
        self.assertEqual(self.count, 9)
        self.assertEqual(len(plan.list_skipped()), 1)
        self.assertEqual(patched_multiprocessing.Process().start.call_count, 5)
        # verify we terminate the process when the stack is finished and also
        # redundantly terminate the process after execution
        self.assertEqual(
            patched_multiprocessing.Process().terminate.call_count, 10)
예제 #4
0
파일: test_plan.py 프로젝트: kylev/stacker
    def test_execute_plan_with_watchers(self, patched_multiprocessing):
        watch_func = mock.MagicMock()
        plan = Plan(description='Test', sleep_time=0, watch_func=watch_func)
        previous_stack = None
        for i in range(5):
            overrides = {}
            if previous_stack:
                overrides['requires'] = [previous_stack.fqn]
            stack = Stack(
                definition=generate_definition('vpc', i, **overrides),
                context=self.context,
            )
            previous_stack = stack
            plan.add(
                stack=stack,
                run_func=self._run_func,
                requires=stack.requires,
            )

        plan.execute()
        self.assertEqual(self.count, 9)
        self.assertEqual(len(plan.list_skipped()), 1)
        self.assertEqual(patched_multiprocessing.Process().start.call_count, 5)
        # verify we terminate the process when the stack is finished and also
        # redundantly terminate the process after execution
        self.assertEqual(
            patched_multiprocessing.Process().terminate.call_count, 10)
예제 #5
0
    def test_execute_plan(self):
        plan = Plan(description="Test", sleep_time=0)
        previous_stack = None
        for i in range(5):
            overrides = {}
            if previous_stack:
                overrides["requires"] = [previous_stack.fqn]
            stack = Stack(definition=generate_definition("vpc", i, **overrides), context=self.context)
            previous_stack = stack
            plan.add(stack=stack, run_func=self._run_func, requires=stack.requires)

        plan.execute()
        self.assertEqual(self.count, 9)
        self.assertEqual(len(plan.list_skipped()), 1)
예제 #6
0
    def test_execute_plan(self):
        plan = Plan(description="Test", sleep_time=0)
        previous_stack = None
        for i in range(5):
            overrides = {}
            if previous_stack:
                overrides["requires"] = [previous_stack.fqn]
            stack = Stack(
                definition=generate_definition("vpc", i, **overrides),
                context=self.context,
            )
            previous_stack = stack
            plan.add(
                stack=stack,
                run_func=self._run_func,
                requires=stack.requires,
            )

        plan.execute()
        self.assertEqual(self.count, 9)
        self.assertEqual(len(plan.list_skipped()), 1)
예제 #7
0
파일: test_plan.py 프로젝트: kylev/stacker
    def test_reset_plan(self):
        plan = Plan(description='Test', sleep_time=0)
        previous_stack = None
        for i in range(5):
            overrides = {}
            if previous_stack:
                overrides['requires'] = [previous_stack.fqn]
            stack = Stack(
                definition=generate_definition('vpc', i, **overrides),
                context=self.context,
            )
            previous_stack = stack
            plan.add(
                stack=stack,
                run_func=self._run_func,
                requires=stack.requires,
            )

        plan.execute()
        self.assertEqual(self.count, 9)
        self.assertEqual(len(plan.list_skipped()), 1)
        plan.reset()
        self.assertEqual(len(plan.list_pending()), len(plan))