def test_run_step_with_no_config(self):
        config = {'step-runner-config': {}}

        factory = StepRunner(config)

        with self.assertRaisesRegex(
                AssertionError,
                r"Can not run step \(foo\) because no step configuration provided."
        ):
            factory.run_step('foo')
 def test_run_step_config_only_sub_step_and_is_dict_rather_then_array(self):
     config = {
         'step-runner-config': {
             'foo': {
                 'implementer':
                 'tests.helpers.sample_step_implementers.FooStepImplementer'
             }
         }
     }
     with TempDirectory() as temp_dir:
         factory = StepRunner(config, temp_dir.path)
         factory.run_step('foo')
 def test_run_step_config_implementer_specified_and_no_sub_step_config_specified_StepImplementer(
         self):
     config = {
         'step-runner-config': {
             'foo': [{
                 'implementer':
                 'tests.helpers.sample_step_implementers.FooStepImplementer'
             }]
         }
     }
     with TempDirectory() as temp_dir:
         factory = StepRunner(config, temp_dir.path)
         factory.run_step('foo')
    def test_run_step_config_specified_StepImplementer_does_not_exist(self):
        config = {
            'step-runner-config': {
                'foo': [{
                    'implementer': 'DoesNotExist'
                }]
            }
        }

        factory = StepRunner(config)

        with self.assertRaisesRegex(
                StepRunnerException,
                r"Could not dynamically load step \(foo\) step implementer \(DoesNotExist\)"
                r" from module \(ploigos_step_runner.step_implementers.foo\) with class name \(DoesNotExist\)"
        ):
            factory.run_step('foo')
Exemplo n.º 5
0
    def test_run_step_multiple_sub_steps_first_sub_step_fail_contine_sub_steps_on_failure_str(
            self, foo_step_implementer_run_step_mock,
            foo_step_implementer2_run_step_mock):
        config = {
            'step-runner-config': {
                'foo': [{
                    'name':
                    'Mock Sub Step 1',
                    'continue-sub-steps-on-failure':
                    'true',
                    'implementer':
                    'tests.helpers.sample_step_implementers.FooStepImplementer'
                }, {
                    'name':
                    'Mock Sub Step 2',
                    'implementer':
                    'tests.helpers.sample_step_implementers.FooStepImplementer2'
                }]
            }
        }

        # mock return value
        mock_sub_step_1_result = StepResult(
            step_name='foo',
            sub_step_name='Mock Sub Step 1',
            sub_step_implementer_name=
            'tests.helpers.sample_step_implementers.FooStepImplementer')
        mock_sub_step_1_result.success = False
        mock_sub_step_2_result = StepResult(
            step_name='foo',
            sub_step_name='Mock Sub Step 2',
            sub_step_implementer_name=
            'tests.helpers.sample_step_implementers.FooStepImplementer')
        mock_sub_step_2_result.success = True

        foo_step_implementer_run_step_mock.return_value = mock_sub_step_1_result
        foo_step_implementer2_run_step_mock.return_value = mock_sub_step_2_result

        # run test
        step_runner = StepRunner(config)
        actual_success = step_runner.run_step('foo')

        # validate
        self.assertFalse(actual_success)
        foo_step_implementer_run_step_mock.assert_called_once()
        foo_step_implementer2_run_step_mock.assert_called_once()