Example #1
0
 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))))
Example #3
0
    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()))
Example #6
0
 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(),
     )
Example #7
0
 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)),
         )
Example #13
0
 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(),
         )
Example #14
0
 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), ))
Example #16
0
            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())
Example #18
0
 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())
Example #19
0
                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(),
            )