def test_fail_WHEN_invalid_components_of_invalid_type(self):
     # ARRANGE #
     assertion = sut.matches_node()
     cases = [
         NameAndValue('invalid type of header',
                      sut.Node(None,
                               None,
                               [],
                               [])
                      ),
         NameAndValue('invalid type of detail',
                      sut.Node('header',
                               None,
                               ['not a Detail'],
                               [])
                      ),
         NameAndValue('invalid type of child',
                      sut.Node('header',
                               None,
                               [],
                               ['not a Node'])
                      ),
     ]
     for case in cases:
         with self.subTest(case.name):
             # ACT & ASSERT #
             assert_that_assertion_fails(assertion, case.value)
 def test_success_WHEN_actual_is_valid_node(self):
     # ARRANGE #
     assertion = sut.matches_node()
     cases = [
         NameAndValue('no details and no children',
                      sut.Node('header',
                               None,
                               [],
                               [])
                      ),
         NameAndValue('single valid detail',
                      sut.Node('header',
                               None,
                               [StringDetail('the string')],
                               [])
                      ),
         NameAndValue('single valid child',
                      sut.Node('header',
                               None,
                               [],
                               [sut.Node('child node', None, [], [])])
                      ),
     ]
     for case in cases:
         with self.subTest(case.name):
             # ACT & ASSERT #
             assertion.apply_without_message(self, case.value)
示例#3
0
def _equals_empty_node(expected: Node) -> Assertion[Node]:
    return asrt_d_tree.matches_node(
        header=asrt.equals(expected.header),
        data=asrt.equals(expected.data),
        details=asrt.is_empty_sequence,
        children=asrt.is_empty_sequence,
    )
示例#4
0
    def test_succeed(self):
        actual = sut.Node('expected header', None, [], [])
        expectation = asrt_d_tree.matches_node(header=asrt.equals('expected header'))

        assertion = sut.matches_node_renderer(rendered_node=expectation)

        assertion.apply_without_message(self,
                                        NodeRendererForTest(actual))
示例#5
0
    def test_fail(self):
        actual = sut.Node('actual header', None, [], [])
        expectation = asrt_d_tree.matches_node(header=asrt.equals('expected header'))

        assertion = sut.matches_node_renderer(rendered_node=expectation)

        assert_that_assertion_fails(assertion,
                                    NodeRendererForTest(actual))
示例#6
0
    def _check_structure_of_primitive(self,
                                      put: unittest.TestCase,
                                      actual: PRIM_W_NODE_DESC,
                                      message_builder: MessageBuilder,
                                      ):
        structure_tree_of_primitive = actual.structure().render()

        asrt_d_tree.matches_node().apply(
            put,
            structure_tree_of_primitive,
            message_builder.for_sub_component('sanity of structure'),
        )

        structure_equals_ddv = asrt_d_tree.header_data_and_children_equal_as(self._structure_tree_of_ddv)

        structure_equals_ddv.apply_with_message(
            put,
            structure_tree_of_primitive,
            'structure of should be same as that of ddv',
        )
def matches_value__w_header(
    value: Assertion[bool],
    header: Assertion[str],
    details: Assertion[Sequence[Detail]] = asrt.anything_goes(),
    children: Assertion[Sequence[Node]] = asrt.anything_goes(),
) -> Assertion[MatchingResult]:
    return matches(value=value,
                   trace=asrt_trace_rendering.matches_node_renderer(
                       asrt_d_tree.matches_node(header=header,
                                                data=value,
                                                details=details,
                                                children=children), ))
    def test_succeed(self):
        actual_rendered_node = _trace_for(False)
        actual_result = MatchingResult(
            actual_rendered_node.data,
            NodeRendererForTest(actual_rendered_node))

        renderer_assertion = asrt_trace_rendering.matches_node_renderer(
            rendered_node=asrt_d_tree.matches_node(
                header=asrt.equals(actual_rendered_node.header)))

        assertion = sut.matches(trace=renderer_assertion)

        assertion.apply_without_message(self, actual_result)
示例#9
0
    def check_ddv(self,
                  put: unittest.TestCase,
                  actual: FullDepsDdv[PRIM_W_NODE_DESC],
                  message_builder: MessageBuilder,
                  ):
        asrt.is_instance(self._expected_ddv_object_type).apply(
            put,
            actual,
            message_builder.for_sub_component('object type'),
        )

        assert isinstance(actual, WithNodeDescription)  # Type info for IDE

        self._structure_tree_of_ddv = actual.structure().render()

        asrt_d_tree.matches_node().apply(
            put,
            self._structure_tree_of_ddv,
            message_builder.for_sub_component('sanity of structure'),
        )

        has_valid_description().apply(put, actual, message_builder)
    def test_fail(self):
        actual_rendered_node = Node('actual header', False, [], [])
        actual_result = MatchingResult(
            actual_rendered_node.data,
            NodeRendererForTest(actual_rendered_node))

        renderer_assertion = asrt_trace_rendering.matches_node_renderer(
            rendered_node=asrt_d_tree.matches_node(
                header=asrt.equals('expected header')))

        assertion = sut.matches(trace=renderer_assertion)

        assert_that_assertion_fails(assertion, actual_result)
    def test_fail(self):
        assertion = sut.matches_node(header=asrt.equals('expected header'))

        assert_that_assertion_fails(assertion,
                                    sut.Node('actual header', None, [], []))
示例#12
0
def matches_pgm_as_detail__executable_file() -> Assertion[Detail]:
    return asrt_d_tree.is_tree_detail(
        asrt_d_tree.matches_node(
            header=asrt.equals(commands.CommandDriverForExecutableFile.NAME)))
    def test_succeed(self):
        assertion = sut.matches_node(children=asrt.len_equals(0))

        assertion.apply_without_message(self,
                                        sut.Node('header', None, [], []))
    def test_fail(self):
        assertion = sut.matches_node(children=asrt.len_equals(1))

        assert_that_assertion_fails(assertion,
                                    sut.Node('header', None, [], []))
    def test_succeed(self):
        assertion = sut.matches_node(data=asrt.equals('expected data'))

        assertion.apply_without_message(self,
                                        sut.Node('header', 'expected data', [], []))
    def test_fail(self):
        assertion = sut.matches_node(data=asrt.equals('expected data'))

        assert_that_assertion_fails(assertion,
                                    sut.Node('header', 'actual data', [], []))
    def test_succeed(self):
        assertion = sut.matches_node(header=asrt.equals('expected header'))

        assertion.apply_without_message(self,
                                        sut.Node('expected header', None, [], []))