コード例 #1
0
 def test_not_matches(self):
     cases = [
         NIE(
             'default assertion/not a renderer',
             input_value=MajorBlock([]),
             expected_value=sut.is_renderer_of_major_blocks(),
         ),
         NIE(
             'default assertion/not a sequence',
             input_value=rend_comb.ConstantR(MajorBlock([])),
             expected_value=sut.is_renderer_of_major_blocks(),
         ),
         NIE(
             'default assertion/not a major block',
             input_value=rend_comb.ConstantSequenceR([MinorBlock([])]),
             expected_value=sut.is_renderer_of_major_blocks(),
         ),
         NIE(
             'default assertion/invalid contents of block',
             input_value=rend_comb.ConstantSequenceR(
                 [MajorBlock(['not a minor block'])]),
             expected_value=sut.is_renderer_of_major_blocks(),
         ),
         NIE(
             'custom assertion/unexpected number of blocks',
             input_value=rend_comb.ConstantSequenceR([]),
             expected_value=sut.is_renderer_of_major_blocks(
                 asrt.len_equals(1)),
         ),
     ]
     for case in cases:
         with self.subTest(case.name):
             assert_that_assertion_fails(case.expected_value,
                                         case.input_value)
コード例 #2
0
def matches_external_process(
        external_process_error: Assertion[ExternalProcessError] = asrt.
    anything_goes(),
        message: Optional[Assertion[MinorTextRenderer]] = asrt.anything_goes()
) -> Assertion[ErrorDescription]:
    return asrt.is_none_or_instance_with__many(
        err_descr.ErrorDescriptionOfExternalProcessError,
        [
            asrt.sub_component_many(
                'message',
                err_descr.ErrorDescriptionOfExternalProcessError.message.fget,
                [
                    asrt.is_none_or_instance_with(
                        SequenceRenderer,
                        asrt_renderer.is_renderer_of_major_blocks()),
                    message,
                ],
            ),
            asrt.sub_component(
                'external_process_error',
                err_descr.ErrorDescriptionOfExternalProcessError.
                external_process_error.fget,
                asrt.is_instance_with(
                    ExternalProcessError,
                    external_process_error,
                )),
        ],
    )
コード例 #3
0
def matches_message(message: Assertion[MinorTextRenderer] = asrt.anything_goes(
)) -> Assertion[ErrorDescription]:
    return asrt.is_none_or_instance_with(
        err_descr.ErrorDescriptionOfMessage,
        asrt.sub_component_many(
            'message',
            err_descr.ErrorDescriptionOfMessage.message.fget,
            [
                asrt_renderer.is_renderer_of_major_blocks(),
                message,
            ],
        ))
コード例 #4
0
 def test_matches(self):
     cases = [
         NIE(
             'default assertion/empty list of blocks',
             input_value=rend_comb.ConstantSequenceR([]),
             expected_value=sut.is_renderer_of_major_blocks(),
         ),
         NIE(
             'default assertion/non-empty list of blocks',
             input_value=rend_comb.ConstantSequenceR([MajorBlock([])]),
             expected_value=sut.is_renderer_of_major_blocks(),
         ),
         NIE(
             'custom assertion',
             input_value=rend_comb.ConstantSequenceR([MajorBlock([])]),
             expected_value=sut.is_renderer_of_major_blocks(
                 asrt.len_equals(1)),
         ),
     ]
     for case in cases:
         with self.subTest(case.name):
             case.expected_value.apply_without_message(
                 self, case.input_value)
コード例 #5
0
def _is_single_pre_formatted_text(
        text: Assertion[str]) -> Assertion[TextRenderer]:
    return asrt_renderer.is_renderer_of_major_blocks(
        asrt.matches_sequence([
            asrt_struct.matches_major_block__w_plain_properties(
                asrt.matches_sequence([
                    asrt_struct.matches_minor_block__w_plain_properties(
                        asrt.matches_sequence([
                            asrt_struct.
                            matches_line_element__w_plain_properties(
                                asrt_struct.is_pre_formatted_string(
                                    string=text))
                        ]))
                ]))
        ]))
コード例 #6
0
def rendered_text_matches(text: Assertion[str]) -> Assertion[TextRenderer]:
    return asrt_renderer.is_renderer_of_major_blocks(
        asrt.on_transformed(render_to_str.print_major_blocks, text))
コード例 #7
0
        text: Assertion[str]) -> Assertion[TextRenderer]:
    return asrt_renderer.is_renderer_of_major_blocks(
        asrt.matches_sequence([
            asrt_struct.matches_major_block__w_plain_properties(
                asrt.matches_sequence([
                    asrt_struct.matches_minor_block__w_plain_properties(
                        asrt.matches_sequence([
                            asrt_struct.
                            matches_line_element__w_plain_properties(
                                asrt_struct.is_pre_formatted_string(
                                    string=text))
                        ]))
                ]))
        ]))


def is_any_text() -> Assertion[TextRenderer]:
    return _IS_ANY_TEXT


def assert_is_valid_text_renderer(put: unittest.TestCase, actual):
    is_any_text().apply_without_message(put, actual)


def rendered_text_matches(text: Assertion[str]) -> Assertion[TextRenderer]:
    return asrt_renderer.is_renderer_of_major_blocks(
        asrt.on_transformed(render_to_str.print_major_blocks, text))


_IS_ANY_TEXT = asrt_renderer.is_renderer_of_major_blocks()
コード例 #8
0
ファイル: pfh_assertions.py プロジェクト: emilkarlen/exactly
def failure_message_is_present_and_valid(
) -> Assertion[pfh.PassOrFailOrHardError]:
    return asrt.sub_component(
        'failure message', pfh.PassOrFailOrHardError.failure_message.fget,
        asrt.is_not_none_and(asrt_renderer.is_renderer_of_major_blocks()))
コード例 #9
0
ファイル: change_dir.py プロジェクト: emilkarlen/exactly
def is_failure() -> Assertion:
    return asrt_renderer.is_renderer_of_major_blocks()
コード例 #10
0
def is_failure() -> Assertion[Optional[TextRenderer]]:
    return asrt_renderer.is_renderer_of_major_blocks()