Exemple #1
0
    def test_find_blocks_second_passing(self):
        youshallnotpass = [
            augeasparser.AugeasBlockNode(name="notpassing",
                                         ancestor=self.block,
                                         filepath="/path/to/whatever",
                                         metadata=self.metadata)
        ]
        youshallpass = [
            augeasparser.AugeasBlockNode(name=assertions.PASS,
                                         ancestor=self.block,
                                         filepath=assertions.PASS,
                                         metadata=self.metadata)
        ]
        find_blocks_primary = mock.MagicMock(return_value=youshallnotpass)
        find_blocks_secondary = mock.MagicMock(return_value=youshallpass)
        self.block.primary.find_blocks = find_blocks_primary
        self.block.secondary.find_blocks = find_blocks_secondary

        blocks = self.block.find_blocks("something")
        for block in blocks:
            try:
                assertions.assertEqual(block.primary, block.secondary)
            except AssertionError:  # pragma: no cover
                self.fail("Assertion should have passed")
            self.assertFalse(assertions.isPassDirective(block.primary))
            self.assertTrue(assertions.isPassDirective(block.secondary))
Exemple #2
0
    def __init__(self, **kwargs: Any):
        """ This initialization implementation allows ordinary initialization
        of BlockNode objects as well as creating a DualBlockNode object
        using precreated or fetched BlockNode objects if provided as optional
        arguments primary and secondary.

        Parameters other than the following are from interfaces.BlockNode:

        :param BlockNode primary: Primary pre-created BlockNode, mainly
            used when creating new DualParser nodes using add_* methods.
        :param BlockNode secondary: Secondary pre-created BlockNode
        """

        kwargs.setdefault("primary", None)
        kwargs.setdefault("secondary", None)
        primary: Optional[augeasparser.AugeasBlockNode] = kwargs.pop("primary")
        secondary: Optional[apacheparser.ApacheBlockNode] = kwargs.pop(
            "secondary")

        if primary or secondary:
            assert primary and secondary
            self.primary = primary
            self.secondary = secondary
        else:
            self.primary = augeasparser.AugeasBlockNode(**kwargs)
            self.secondary = apacheparser.ApacheBlockNode(**kwargs)

        assertions.assertEqual(self.primary, self.secondary)
Exemple #3
0
    def test_find_blocks_no_pass_notequal(self):
        notpassing1 = [augeasparser.AugeasBlockNode(name="notpassing",
                                                    ancestor=self.block,
                                                    filepath="/path/to/whatever",
                                                    metadata=self.metadata)]
        notpassing2 = [augeasparser.AugeasBlockNode(name="different",
                                                    ancestor=self.block,
                                                    filepath="/path/to/whatever",
                                                    metadata=self.metadata)]
        find_blocks_primary = mock.MagicMock(return_value=notpassing1)
        find_blocks_secondary = mock.MagicMock(return_value=notpassing2)
        self.block.primary.find_blocks = find_blocks_primary
        self.block.secondary.find_blocks = find_blocks_secondary

        with self.assertRaises(AssertionError):
            _ = self.block.find_blocks("anything")
Exemple #4
0
    def test_find_blocks_no_pass_equal(self):
        notpassing1 = [augeasparser.AugeasBlockNode(name="notpassing",
                                                    ancestor=self.block,
                                                    filepath="/path/to/whatever",
                                                    metadata=self.metadata)]
        notpassing2 = [augeasparser.AugeasBlockNode(name="notpassing",
                                                    ancestor=self.block,
                                                    filepath="/path/to/whatever",
                                                    metadata=self.metadata)]
        find_blocks_primary = mock.MagicMock(return_value=notpassing1)
        find_blocks_secondary = mock.MagicMock(return_value=notpassing2)
        self.block.primary.find_blocks = find_blocks_primary
        self.block.secondary.find_blocks = find_blocks_secondary

        blocks = self.block.find_blocks("anything")
        for block in blocks:
            with self.subTest(block=block):
                self.assertEqual(block.primary, block.secondary)
                self.assertIsNot(block.primary, block.secondary)
Exemple #5
0
 def test_parsernode_notequal(self):
     ne_block = augeasparser.AugeasBlockNode(name="different",
                                             ancestor=self.block,
                                             filepath="/path/to/whatever",
                                             metadata=self.metadata)
     ne_directive = augeasparser.AugeasDirectiveNode(name="different",
                                                     ancestor=self.block,
                                                     filepath="/path/to/whatever",
                                                     metadata=self.metadata)
     ne_comment = augeasparser.AugeasCommentNode(comment="different",
                                                 ancestor=self.block,
                                                 filepath="/path/to/whatever",
                                                 metadata=self.metadata)
     self.assertNotEqual(self.block, ne_block)
     self.assertNotEqual(self.directive, ne_directive)
     self.assertNotEqual(self.comment, ne_comment)
Exemple #6
0
 def augeasnode_mock(metadata):
     return augeasparser.AugeasBlockNode(name=assertions.PASS,
                                         ancestor=None,
                                         filepath=filepath,
                                         metadata=metadata)