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)
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)
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)
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)
'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 = [
def test_executed__skipped(self): result = new_executed(new_skipped()) self._check(result)
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: