def test_successful_flow(self): self._check( utils.ParserThatGives(SUCCESSFUL_INSTRUCTION), utils.single_line_source(), sut.Arrangement(), sut.Expectation(), )
def test_fail_due_to_fail_of_side_effects_on_instruction_settings(self): with self.assertRaises(utils.TestError): self._check( utils.ParserThatGives(SUCCESSFUL_INSTRUCTION), single_line_source(), sut.Arrangement(), sut.Expectation(instruction_settings=asrt.not_( asrt.is_instance(InstructionSettings))))
def test_that_symbols_from_arrangement_exist_in_environment(self): symbol = StringConstantSymbolContext('symbol_name', 'the symbol value') symbol_table_of_arrangement = symbol.symbol_table expected_symbol_table = symbol.symbol_table assertion_for_validation = do_fail_if_symbol_table_does_not_equal( self, expected_symbol_table, get_symbol_table_from_path_resolving_environment_that_is_first_arg) assertion_for_main = do_fail_if_symbol_table_does_not_equal( self, expected_symbol_table, get_symbol_table_from_instruction_environment_that_is_first_arg) self._check( utils.ParserThatGives( before_assert_phase_instruction_that( validate_pre_sds_initial_action=assertion_for_validation, validate_post_setup_initial_action=assertion_for_validation, main_initial_action=assertion_for_main, )), utils.single_line_source(), sut.arrangement(symbols=symbol_table_of_arrangement), sut.Expectation(), )
def test_fail_due_to_fail_of_side_effects_on_tcds(self): with self.assertRaises(utils.TestError): self._check( utils.ParserThatGives(SUCCESSFUL_INSTRUCTION), single_line_source(), sut.Arrangement(), sut.Expectation( main_side_effects_on_tcds=asrt.IsInstance(bool)))
def test_fail_due_to_unexpected_result_from_post_validation(self): with self.assertRaises(utils.TestError): self._check( utils.ParserThatGives(SUCCESSFUL_INSTRUCTION), single_line_source(), sut.Arrangement(), sut.Expectation( post_validation_result=asrt_svh.is_hard_error()))
def test_that_cwd_for_main_and_post_validation_is_test_root(self): self._check( utils.ParserThatGives( InstructionThatRaisesTestErrorIfCwdIsIsNotTestRoot()), utils.single_line_source(), sut.Arrangement(), sut.Expectation(), )
def test_fail_due_to_unexpected_result_from_main(self): with self.assertRaises(utils.TestError): self._check( utils.ParserThatGives(SUCCESSFUL_INSTRUCTION), utils.single_line_source(), sut.Arrangement(), sut.Expectation(main_result=sh_assertions.is_hard_error()), )
def test_fail_due_to_unexpected_result_from_pre_validation(self): with self.assertRaises(utils.TestError): self._check( utils.ParserThatGives(_SUCCESSFUL_INSTRUCTION), utils.single_line_source(), sut.ArrangementPostAct(), Expectation(validation_pre_sds=svh_assertions.is_hard_error()), )
def test_fail_due_to_fail_of_side_effects_on_sds(self): with self.assertRaises(utils.TestError): self._check( utils.ParserThatGives(SUCCESSFUL_INSTRUCTION), single_line_source(), sut.Arrangement(), sut.Expectation( main_side_effects_on_sds=act_dir_contains_exactly( DirContents([File.empty('non-existing-file.txt')]))))
def test_fail_due_to_fail_of_side_effects_on_proc_exe_settings(self): with self.assertRaises(utils.TestError): self._check( utils.ParserThatGives(_SUCCESSFUL_INSTRUCTION), utils.single_line_source(), sut.ArrangementPostAct(), Expectation(proc_exe_settings=asrt.not_( asrt.is_instance(ProcessExecutionSettings))), )
def test_fail_due_to_unexpected_result_from_main(self): with self.assertRaises(utils.TestError): self._check( utils.ParserThatGives(_SUCCESSFUL_INSTRUCTION), utils.single_line_source(), sut.ArrangementPostAct(), Expectation(main_result=pfh_assertions. is_fail__with_arbitrary_message()), )
def test_failure(self): with self.assertRaises(utils.TestError): self._check( utils.ParserThatGives(setup_phase_instruction_that()), single_line_source(), sut.Arrangement( settings_builder=SetupSettingsBuilder.new_empty()), sut.Expectation(settings_builder=asrt.sub_component( 'stdin', lambda model: model.actual.stdin, asrt.is_not_none)), )
def test_that_default_expectation_assumes_no_symbol_usages(self): with self.assertRaises(utils.TestError): unexpected_symbol_usages = [ data_references.reference_to__on_direct_and_indirect('symbol_name')] self._check( utils.ParserThatGives( before_assert_phase_instruction_that( symbol_usages=do_return(unexpected_symbol_usages))), single_line_source(), sut.arrangement(), sut.Expectation(), )
def test_that_fails_due_to_missing_symbol_reference(self): with self.assertRaises(utils.TestError): symbol_usages_of_instruction = [] self._check( utils.ParserThatGives( cleanup_phase_instruction_that(symbol_usages=do_return( symbol_usages_of_instruction))), utils.single_line_source(), sut.Arrangement(), sut.Expectation(symbol_usages=asrt.matches_singleton_sequence( matches_data_type_symbol_reference( 'symbol_name', reference_restrictions.is_any_type_w_str_rendering())) ), )
def test_fail_due_to_unexpected_source_after_parse(self): with self.assertRaises(utils.TestError): self._check( utils.ParserThatGives(_SUCCESSFUL_INSTRUCTION), utils.single_line_source(), sut.ArrangementPostAct(), Expectation(source=asrt_source.is_at_beginning_of_line(10), ))
utils.single_line_source(), sut.Arrangement( default_environ_getter=default_environ_getter, process_execution_settings=ProcessExecutionSettings. from_non_immutable(environ=default_environs), ), sut.Expectation(instruction_settings=asrt_instr_settings.matches( environ=asrt.equals(default_environs), return_value_from_default_getter=asrt.equals( default_from_default_getter)), proc_exe_settings=asrt_pes.matches( environ=asrt.equals(default_environs))), ) PARSER_THAT_GIVES_SUCCESSFUL_INSTRUCTION = utils.ParserThatGives( cleanup_phase_instruction_that()) class TestSymbols(TestCaseBase): def test_that_symbols_from_arrangement_exist_in_environment(self): symbol = StringConstantSymbolContext( 'symbol_name_in_cleanup_phase', 'the symbol value in cleanup phase') symbol_table_of_arrangement = symbol.symbol_table expected_symbol_table = symbol.symbol_table assertion_for_validation = do_fail_if_symbol_table_does_not_equal( self, expected_symbol_table, get_symbol_table_from_path_resolving_environment_that_is_first_arg) assertion_for_main = do_fail_if_symbol_table_does_not_equal( self, expected_symbol_table,
def test_successful_flow(self): self._check(utils.ParserThatGives(_SUCCESSFUL_INSTRUCTION), utils.single_line_source(), sut.ArrangementPostAct(), is_pass())
def test_that_cwd_for_main__and__validate_post_setup_is_act_dir(self): self._check( utils.ParserThatGives(InstructionThatRaisesTestErrorIfCwdIsIsNotTestRoot()), single_line_source(), sut.arrangement(), sut.is_success())
default_environ_getter=default_environ_getter, process_execution_settings=ProcessExecutionSettings.from_non_immutable(environ=default_environs), ), sut.Expectation( instruction_settings=asrt_instr_settings.matches( environ=asrt.equals(default_environs), return_value_from_default_getter=asrt.equals(default_from_default_getter) ), proc_exe_settings=asrt_pes.matches( environ=asrt.equals(default_environs) ) ), ) PARSER_THAT_GIVES_SUCCESSFUL_INSTRUCTION = utils.ParserThatGives( before_assert_phase_instruction_that()) class TestSymbols(TestCaseBase): def test_that_default_expectation_assumes_no_symbol_usages(self): with self.assertRaises(utils.TestError): unexpected_symbol_usages = [ data_references.reference_to__on_direct_and_indirect('symbol_name')] self._check( utils.ParserThatGives( before_assert_phase_instruction_that( symbol_usages=do_return(unexpected_symbol_usages))), single_line_source(), sut.arrangement(), sut.Expectation(), )