コード例 #1
0
ファイル: validation.py プロジェクト: emilkarlen/exactly
 def post_sds_fails(expected_err_msg: Assertion[str] = asrt.anything_goes()
                    ) -> 'ValidationAssertions':
     return ValidationAssertions(
         pre_sds=asrt.is_none,
         post_sds=asrt.is_not_none_and(
             asrt_text_doc.is_string_for_test(expected_err_msg)),
     )
コード例 #2
0
 def expect_failing_validation_post_setup(
     self,
     assertion_on_error_message: Assertion[str] = asrt.anything_goes(),
     symbol_usages: Assertion[
         Sequence[SymbolUsage]] = asrt.is_empty_sequence,
 ):
     return Expectation(main_result=asrt_sh.is_hard_error(
         asrt_text_doc.is_string_for_test(assertion_on_error_message)),
                        symbol_usages=symbol_usages)
コード例 #3
0
 def test_hard_error(self):
     # ARRANGE #
     error_message = 'hard error'
     # ACT #
     actual = sut.translate_pfh_exception_to_pfh(test_action, DO_HARD_ERROR, error_message)
     # ASSERT #
     expectation = asrt_pfh.is_hard_error(
         asrt_text_doc.is_string_for_test(asrt.equals(error_message))
     )
     expectation.apply_without_message(self, actual)
コード例 #4
0
 def test_fail_error(self):
     # ARRANGE #
     error_message = 'validation error'
     # ACT #
     actual = sut.translate_pfh_exception_to_pfh(test_action, DO_FAIL, error_message)
     # ASSERT #
     expectation = asrt_pfh.is_fail(
         asrt_text_doc.is_string_for_test(asrt.equals(error_message))
     )
     expectation.apply_without_message(self, actual)
コード例 #5
0
    def _apply(self, put: unittest.TestCase, value: FailureDetails,
               message_builder: MessageBuilder):
        put.assertIsNotNone(value, message_builder.apply('must not be none'))
        put.assertIsInstance(value, FailureDetails,
                             message_builder.apply('type of object'))

        if self._error_message_or_none is not None:
            message_comp_builder = message_builder.for_sub_component(
                'failure message')
            put.assertIsNotNone(value.failure_message, message_comp_builder)

            asrt_text_doc.is_string_for_test(
                self._error_message_or_none).apply(
                    put, value.failure_message,
                    message_comp_builder.for_sub_component('text-doc'))

        self._exception_or_none.apply(
            put, value.exception,
            message_builder.for_sub_component('exception'))
コード例 #6
0
ファイル: configuration.py プロジェクト: emilkarlen/exactly
 def expect_hard_error_of_main(
     self,
     assertion_on_error_message: Assertion[str] = asrt.anything_goes(),
     symbol_usages: Assertion[
         Sequence[SymbolUsage]] = asrt.is_empty_sequence,
 ):
     return Expectation(
         main_result=pfh_assertions.is_hard_error(
             asrt_text_doc.is_string_for_test(assertion_on_error_message)),
         symbol_usages=symbol_usages,
     )
コード例 #7
0
 def test_success_WHEN_actual_is_expected(self):
     # ARRANGE #
     expected_err_msg = 'expected error message'
     cases = [
         NEA(
             'fail',
             sut.failure_message_is(
                 asrt_text_doc.is_string_for_test(
                     asrt.equals(expected_err_msg))),
             pfh.new_pfh_fail(
                 asrt_text_doc.new_single_string_text_for_test(
                     expected_err_msg)),
         ),
         NEA(
             'fail/const msg',
             sut.failure_message_is(
                 asrt_text_doc.is_string_for_test(
                     asrt.equals(expected_err_msg))),
             pfh.new_pfh_fail__str(expected_err_msg),
         ),
         NEA(
             'hard error',
             sut.failure_message_is(
                 asrt_text_doc.is_string_for_test(
                     asrt.equals(expected_err_msg))),
             pfh.new_pfh_hard_error(
                 asrt_text_doc.new_single_string_text_for_test(
                     expected_err_msg)),
         ),
         NEA(
             'hard error/const msg',
             sut.failure_message_is(
                 asrt_text_doc.is_string_for_test(
                     asrt.equals(expected_err_msg))),
             pfh.new_pfh_hard_error__str(expected_err_msg),
         ),
     ]
     for case in cases:
         with self.subTest(case.name):
             # ACT & ASSERT #
             case.expected.apply_without_message(self, case.actual)
コード例 #8
0
ファイル: configuration.py プロジェクト: emilkarlen/exactly
 def expect_hard_error_of_main(
     self,
     assertion_on_error_message: Assertion[str] = asrt.anything_goes(),
     symbol_usages: Assertion[
         Sequence[SymbolUsage]] = asrt.is_empty_sequence,
 ):
     """
     Expectation that the result should be HARD_ERROR,
     both for assert- and non-assert phase instructions.
     """
     return self.expect_failure_of_main(
         asrt_text_doc.is_string_for_test(assertion_on_error_message))
コード例 #9
0
ファイル: assertion_part.py プロジェクト: emilkarlen/exactly
 def test_return_pfh_fail_WHEN_PfhFailException_is_raised(self):
     # ARRANGE #
     assertion_part_that_raises = PartThatRaisesFailureExceptionIfArgumentIsEqualToOne()
     # ACT #
     actual = assertion_part_that_raises.check_and_return_pfh(self.environment,
                                                              self.the_os_services,
                                                              1)
     # ASSERT #
     assertion = asrt_pfh.is_fail(
         is_string_for_test(
             asrt.equals(PartThatRaisesFailureExceptionIfArgumentIsEqualToOne.ERROR_MESSAGE))
     )
     assertion.apply_without_message(self, actual)
コード例 #10
0
 def test_unsuccessful_WHEN_actual_is_not_expected(self):
     # ARRANGE #
     expected_err_msg = 'expected error message'
     actual_err_msg = 'actual error message'
     cases = [
         NEA(
             'fail',
             sut.failure_message_is(
                 asrt_text_doc.is_string_for_test(
                     asrt.equals(expected_err_msg))),
             pfh.new_pfh_fail__str(actual_err_msg),
         ),
         NEA(
             'hard error',
             sut.failure_message_is(
                 asrt_text_doc.is_string_for_test(
                     asrt.equals(expected_err_msg))),
             pfh.new_pfh_hard_error__str(actual_err_msg),
         ),
     ]
     for case in cases:
         with self.subTest(case.name):
             # ACT & ASSERT #
             assert_that_assertion_fails(case.expected, case.actual)
コード例 #11
0
ファイル: assertion_part.py プロジェクト: emilkarlen/exactly
    def test_return_pfh_fail_WHEN_PfhFailException_is_raised(self):
        # ARRANGE #
        environment = fake_post_sds_environment()

        assertion_part_that_raises = PartThatRaisesFailureExceptionIfArgumentIsEqualToOne()
        instruction = sut.AssertionInstructionFromAssertionPart(assertion_part_that_raises,
                                                                lambda env: 1)
        # ACT #
        actual = instruction.main(environment,
                                  optionally_from_proc_exe_settings(None, environment.proc_exe_settings),
                                  self.the_os_services)
        # ASSERT #
        assertion = asrt_pfh.is_fail(
            asrt_text_doc.is_string_for_test(
                asrt.equals(PartThatRaisesFailureExceptionIfArgumentIsEqualToOne.ERROR_MESSAGE))
        )
        assertion.apply_without_message(self, actual)
コード例 #12
0
ファイル: assertion_part.py プロジェクト: emilkarlen/exactly
    def test_argument_getter_SHOULD_be_given_environment_as_argument(self):
        # ARRANGE #
        environment = fake_post_sds_environment()

        assertion_part = PartThatRaisesFailureExceptionIfArgumentIsEqualToOne()

        def argument_getter_that_depends_on_environment(env: InstructionEnvironmentForPostSdsStep) -> int:
            return 1 if env is environment else 0

        instruction = sut.AssertionInstructionFromAssertionPart(assertion_part,
                                                                argument_getter_that_depends_on_environment)
        # ACT #
        actual = instruction.main(environment,
                                  optionally_from_proc_exe_settings(None, environment.proc_exe_settings),
                                  self.the_os_services)
        # ASSERT #
        assertion = asrt_pfh.is_fail(
            asrt_text_doc.is_string_for_test(
                asrt.equals(PartThatRaisesFailureExceptionIfArgumentIsEqualToOne.ERROR_MESSAGE)
            )
        )
        assertion.apply_without_message(self, actual)
コード例 #13
0
ファイル: validation.py プロジェクト: emilkarlen/exactly
def matches_validation_failure(
        message: Assertion[str]) -> ValidationResultAssertion:
    return asrt_text_doc.is_string_for_test(message)
コード例 #14
0
ファイル: validation.py プロジェクト: emilkarlen/exactly
def assertion_from_actual(
        actual: Optional[str]) -> Assertion[Optional[TextRenderer]]:
    return (asrt.is_none if actual is None else asrt.is_not_none_and(
        asrt_text_doc.is_string_for_test(asrt.equals(actual))))
コード例 #15
0
def is_hard_error(error_message: Assertion[str] = asrt.anything_goes()
                  ) -> Optional[Assertion[TextRenderer]]:
    return asrt_text_doc.is_string_for_test(
        asrt.is_instance_with(str, error_message))