Esempio n. 1
0
def execute(
    conf: ExecutionConfiguration,
    configuration_builder: ConfigurationBuilder,
    is_keep_sandbox: bool,
    test_case: test_case_doc.TestCase,
) -> FullExeResult:
    """
    The main method for executing a Test Case.
    """
    conf_phase_failure = execute_configuration_phase(
        configuration_builder, test_case.configuration_phase)
    if conf_phase_failure is not None:
        return new_configuration_phase_failure_from(conf_phase_failure)
    if configuration_builder.test_case_status is TestCaseStatus.SKIP:
        return new_skipped()
    conf_phase_values = ConfPhaseValues(
        configuration_builder.actor,
        configuration_builder.hds,
    )
    partial_result = execution.execute(
        TestCase(test_case.setup_phase, test_case.act_phase,
                 test_case.before_assert_phase, test_case.assert_phase,
                 test_case.cleanup_phase), conf, conf_phase_values,
        StandardSetupSettingsHandler.new_from_environ, is_keep_sandbox)
    return new_from_result_of_partial_execution(
        configuration_builder.test_case_status, partial_result)
Esempio n. 2
0
 def test_successful_application(self):
     # ARRANGE #
     accessor = sut.AccessorFromParts(
         SourceReaderThat(gives_constant('source')),
         PreprocessorThat(gives_constant('preprocessed source')),
         ParserThat(gives_constant(TEST_CASE)),
         identity_test_case_transformer())
     full_result = new_skipped()
     executor = ExecutorThatReturnsIfSame(TEST_CASE, full_result)
     processor = sut.ProcessorFromAccessorAndExecutor(accessor, executor)
     # ACT #
     result = processor.apply(tcp.test_case_reference_of_source_file(PATH))
     # ASSERT #
     self.assertIs(tcp.Status.EXECUTED, result.status)
     self.assertIs(full_result, result.execution_result)
Esempio n. 3
0
 def test_successful_application(self):
     # ARRANGE #
     accessor = sut.AccessorFromParts(SourceReaderThat(gives_constant('source')),
                                      PreprocessorThat(gives_constant('preprocessed source')),
                                      ParserThat(gives_constant(TEST_CASE)),
                                      identity_test_case_transformer())
     full_result = new_skipped()
     executor = ExecutorThatReturnsIfSame(TEST_CASE, full_result)
     processor = sut.ProcessorFromAccessorAndExecutor(accessor,
                                                      executor)
     # ACT #
     result = processor.apply(tcp.test_case_reference_of_source_file(PATH))
     # ASSERT #
     self.assertIs(tcp.Status.EXECUTED,
                   result.status)
     self.assertIs(full_result,
                   result.execution_result)
Esempio n. 4
0
    def apply(self, test_case: TestCaseFileReference) -> tcp.Result:
        return self.test_case_id_2_result[id(test_case)]


DUMMY_TEST_CASE_DEFINITION = test_case_definition_with_no_instructions_and_no_preprocessor()

DUMMY_CASE_PROCESSING = case_processing.Configuration(
    DUMMY_TEST_CASE_DEFINITION,
    test_case_handling_setup_with_identity_preprocessor(),
    AtcOsProcessExecutorThatJustReturnsConstant(),
    False,
)

FULL_RESULT_PASS = new_pass(DUMMY_SDS, ActionToCheckOutcome(0))
FULL_RESULT_SKIP = new_skipped()
FULL_RESULT_FAIL = full_result_with_failure_info(FullExeResultStatus.FAIL)

T_C_H_S = test_case_handling_setup_with_identity_preprocessor()


def test_suite(source_file_name: str,
               sub_test_suites: List[structure.TestSuiteHierarchy],
               test_cases: List[TestCaseFileReference]) -> structure.TestSuiteHierarchy:
    return structure.TestSuiteHierarchy(pathlib.Path(source_file_name),
                                        [],
                                        T_C_H_S,
                                        sub_test_suites,
                                        test_cases)

Esempio n. 5
0
                'section_name',
                input_value=ErrorInfo(
                    _ERROR_DESCRIPTION_OF_EMPTY_MESSAGE,
                    section_name=self._SECTION_NAME + 'unexpected',
                ),
                expected_value=sut.error_info_matches(
                    section_name=asrt.equals(self._SECTION_NAME)),
            ),
        ]
        for case in cases:
            with self.subTest(case.name):
                assert_that_assertion_fails(case.expected_value,
                                            case.input_value)


_FULL_EXE_RESULT__ARBITRARY = full_exe_result.new_skipped()

_FULL_EXE_RESULT__SKIPPED = full_exe_result.new_skipped()
_FULL_EXE_RESULT__PASS = full_exe_result.new_pass(fake_sds(),
                                                  ActionToCheckOutcome(0))

_ERROR_INFO__WITH_DESCRIPTION = ErrorInfo(
    description=error_description.of_constant_message('error info message'))


class TestResultMatches(unittest.TestCase):
    _SECTION_NAME = 'a section name'
    _AN_ACCESS_ERROR_TYPE = test_case_processing.AccessErrorType.FILE_ACCESS_ERROR

    def test_matches(self):
        cases = [
Esempio n. 6
0
 def test_executed__skipped(self):
     result = new_executed(new_skipped())
     self._check(result)
Esempio n. 7
0
 def test_executed__skipped(self):
     result = new_executed(new_skipped())
     self._check(result)
Esempio n. 8
0

DUMMY_TEST_CASE_DEFINITION = test_case_definition_with_no_instructions_and_no_preprocessor(
)

DUMMY_CASE_PROCESSING = case_processing.Configuration(
    DUMMY_TEST_CASE_DEFINITION,
    test_case_handling_setup_with_identity_preprocessor(),
    os_services_access.new_for_cmd_exe(
        CommandExecutorThatJustReturnsConstant()),
    2**10,
    False,
)

FULL_RESULT_PASS = new_pass(DUMMY_SDS, ActionToCheckOutcome(0))
FULL_RESULT_SKIP = new_skipped()
FULL_RESULT_FAIL = full_result_with_failure_info(FullExeResultStatus.FAIL)

T_C_H_S = test_case_handling_setup_with_identity_preprocessor()


def test_suite(
        source_file_name: str,
        sub_test_suites: List[structure.TestSuiteHierarchy],
        test_cases: List[TestCaseFileReference]
) -> structure.TestSuiteHierarchy:
    return structure.TestSuiteHierarchy(pathlib.Path(source_file_name), [],
                                        T_C_H_S, sub_test_suites, test_cases)


def test_case(source_file_name: str) -> TestCaseFileReference: