def test_matches(self):
     expected_string = 'expected string'
     cases = [
         NEA('default/False',
             expected=
             sut.is_pre_formatted_string_detail(),
             actual=
             sut.PreFormattedStringDetail('anything', False),
             ),
         NEA('default/True',
             expected=
             sut.is_pre_formatted_string_detail(),
             actual=
             sut.PreFormattedStringDetail('anything', True),
             ),
         NEA('object_with_to_string',
             expected=
             sut.is_pre_formatted_string_detail(to_string_object=asrt_to_string.equals(expected_string)),
             actual=
             sut.PreFormattedStringDetail(expected_string, True)
             ),
         NEA('string is line ended',
             expected=
             sut.is_pre_formatted_string_detail(string_is_line_ended=asrt.equals(True)),
             actual=
             sut.PreFormattedStringDetail('anything', True),
             ),
     ]
     for case in cases:
         with self.subTest(case.name):
             case.expected.apply_without_message(self, case.actual)
 def visit_pre_formatted_string(self,
                                expected: PreFormattedStringDetail) -> None:
     expectation = is_pre_formatted_string_detail(
         to_string_object=asrt_to_string.equals(
             str(expected.object_with_to_string)),
         string_is_line_ended=asrt.equals(expected.string_is_line_ended),
     )
     expectation.apply(self._put, self._actual, self._message_builder)
 def test_not_matches(self):
     cases = [
         NEA('unexpected object type',
             expected=
             sut.is_string_detail(),
             actual=
             sut.PreFormattedStringDetail('s'),
             ),
         NEA('string',
             expected=
             sut.is_string_detail(to_string_object=asrt_to_string.equals('expected')),
             actual=
             sut.StringDetail('actual'),
             ),
     ]
     for case in cases:
         with self.subTest(case.name):
             assert_that_assertion_fails(case.expected, case.actual)
 def test_matches(self):
     expected_string = 'expected string'
     cases = [
         NEA('default',
             expected=
             sut.is_string_detail(),
             actual=
             sut.StringDetail('anything'),
             ),
         NEA('string',
             expected=
             sut.is_string_detail(to_string_object=asrt_to_string.equals(expected_string)),
             actual=
             sut.StringDetail(expected_string)
             ),
     ]
     for case in cases:
         with self.subTest(case.name):
             case.expected.apply_without_message(self, case.actual)
 def test_not_matches(self):
     cases = [
         NEA('unexpected object type',
             expected=
             sut.is_pre_formatted_string_detail(),
             actual=
             sut.StringDetail('s'),
             ),
         NEA('string',
             expected=
             sut.is_pre_formatted_string_detail(to_string_object=asrt_to_string.equals('expected')),
             actual=
             sut.PreFormattedStringDetail('actual', True),
             ),
         NEA('string is line ended',
             expected=
             sut.is_pre_formatted_string_detail(string_is_line_ended=asrt.equals(True)),
             actual=
             sut.PreFormattedStringDetail('anything', False),
             ),
     ]
     for case in cases:
         with self.subTest(case.name):
             assert_that_assertion_fails(case.expected, case.actual)
 def visit_header_and_value(self, expected: HeaderAndValueDetail) -> None:
     expectation = is_header_and_value_detail(
         header=asrt_to_string.equals(str(expected.header)),
         values=equals_details(expected.values),
     )
     expectation.apply(self._put, self._actual, self._message_builder)
 def visit_string(self, expected: StringDetail) -> None:
     expectation = is_string_detail(
         to_string_object=asrt_to_string.equals(str(expected.string)))
     expectation.apply(self._put, self._actual, self._message_builder)