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)
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, )), ], )
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, ], ))
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)
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)) ])) ])) ]))
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))
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()
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()))
def is_failure() -> Assertion: return asrt_renderer.is_renderer_of_major_blocks()
def is_failure() -> Assertion[Optional[TextRenderer]]: return asrt_renderer.is_renderer_of_major_blocks()