示例#1
0
 def test_output_goes_to_next_step_args(self):
     sm = step_manager('sm')
     s1 = sm.add_step(step_description(step_with_output1), {}, {})
     s2 = sm.add_step(step_description(step_with_output2), {}, {})
     s3 = sm.add_step(step_description(step_with_output3), {}, {})
     s4 = sm.add_step(step_description(step_with_output4), {}, {})
     result = sm.execute({}, {}, {})
     self.assertTrue(result.success)
     self.assertEqual({}, s1.saved_args)
     self.assertEqual({'foo': '5', 'bar': 6}, s2.saved_args)
     self.assertEqual({
         'foo': '5',
         'bar': 6,
         'fruit': 'kiwi'
     }, s3.saved_args)
     self.assertEqual(
         {
             'cheese': 'blue',
             'foo': '5',
             'bar': 6,
             'fruit': 'kiwi'
         }, s4.saved_args)
     self.assertEqual(
         {
             'drink': 'bourbon',
             'cheese': 'blue',
             'foo': '5',
             'bar': 6,
             'fruit': 'kiwi'
         }, result.output)
示例#2
0
 def test_step_results(self):
     sm = step_manager('sm')
     script = {}
     env = {}
     s = sm.add_step(step_description(sample_step_fake_output1), script,
                     env)
     expected_output = {'foo': 6, 'bar': 'hi'}
     result = sm.execute(script, env, {'fake_output': expected_output})
     self.assertTrue(result.success)
     self.assertEqual(None, result.message)
     self.assertEqual(None, result.failed_step)
     self.assertEqual(expected_output, result.output)
示例#3
0
    def test_multiple_step(self):
        self.maxDiff = None

        execute_args = {'global_food': 'steak', 'global_drink': 'wine'}

        step1_args = {'step1_fruit': 'apple', 'step1_num': 666}
        step2_args = {'step2_fruit': 'durian', 'step2_num': 667}
        step3_args = {'step3_fruit': 'mangosteen', 'step3_num': 668}

        all_steps_args = dict_util.combine(step1_args, step2_args, step3_args)

        description_args1 = {
            'desc1_wine': 'barolo',
            'desc1_cheese': 'manchego'
        }
        description_args2 = {
            'desc2_wine': 'barolo',
            'desc2_cheese': 'manchego'
        }
        description_args3 = {
            'desc3_wine': 'barolo',
            'desc3_cheese': 'manchego'
        }

        description_args = dict_util.combine(description_args1,
                                             description_args2,
                                             description_args3)
        multi_step_description = step_description(self.test_multi_steps,
                                                  args=description_args)

        sm = step_manager('sm')

        multi_step = sm.add_step(multi_step_description, {}, {})

        multi_step.update_args(all_steps_args)

        result = sm.execute({}, {}, execute_args)

        expected_saved_args = dict_util.combine(execute_args, all_steps_args,
                                                description_args)

        self.assertTrue(result.success)
        self.assertEqual(None, result.message)
        self.assertEqual(None, result.failed_step)
        self.assertEqual(expected_saved_args, multi_step.steps[0].saved_args)
        self.assertEqual(expected_saved_args, multi_step.steps[1].saved_args)
        self.assertEqual(expected_saved_args, multi_step.steps[2].saved_args)
示例#4
0
 def test_output_goes_to_next_step_args_multi_step(self):
     sm = step_manager('sm')
     s = sm.add_step(
         step_description(self.multi_step_with_steps_that_output), {}, {})
     result = sm.execute({}, {}, {})
     self.assertTrue(result.success)
     self.assertEqual({}, s.steps[0].saved_args)
     self.assertEqual({'foo': '5', 'bar': 6}, s.steps[1].saved_args)
     self.assertEqual({
         'foo': '5',
         'bar': 6,
         'fruit': 'kiwi'
     }, s.steps[2].saved_args)
     self.assertEqual(
         {
             'cheese': 'blue',
             'foo': '5',
             'bar': 6,
             'fruit': 'kiwi'
         }, s.steps[3].saved_args)
示例#5
0
    def test_multi_step_results(self):
        self.maxDiff = None

        sm = step_manager('sm')
        script = {}
        env = {}
        s = sm.add_step(step_description(self.test_multi_step), script, env)
        expected_output1 = {'foo': 6, 'bar': 'hi'}
        expected_output2 = {'fruit': 'kiwi', 'cheese': 'manchego'}
        expected_output3 = {'wine': 'barolo', 'nut': 'almond'}
        execute_args = {
            'fake_output': expected_output1,
            'fake_output2': expected_output2,
            'fake_output3': expected_output3,
        }
        expected_output = dict_util.combine(expected_output1, expected_output2,
                                            expected_output3)
        result = sm.execute(script, env, execute_args)
        self.assertTrue(result.success)
        self.assertEqual(None, result.message)
        self.assertEqual(None, result.failed_step)
        self.assertEqual(expected_output, result.output)
示例#6
0
 def _add_save_args_step(self, sm):
     description = step_description(self.SaveArgsStep)
     return sm.add_step(description, {}, {})
示例#7
0
 def _add_test_step(self, sm, fake_name, fake_success=True):
     args = {'fake_name': fake_name, 'fake_success': fake_success}
     description = step_description(sample_step_fake_success, args=args)
     return sm.add_step(description, {}, {})