mirror of
https://github.com/certbot/certbot.git
synced 2026-08-04 12:32:02 +02:00
Implement add_child_comment (#7518)
This commit is contained in:
@@ -243,14 +243,24 @@ class AugeasBlockNode(AugeasDirectiveNode):
|
|||||||
metadata=new_metadata)
|
metadata=new_metadata)
|
||||||
return new_dir
|
return new_dir
|
||||||
|
|
||||||
def add_child_comment(self, comment="", position=None): # pylint: disable=unused-argument
|
def add_child_comment(self, comment="", position=None):
|
||||||
"""Adds a new CommentNode to the sequence of children"""
|
"""Adds a new CommentNode to the sequence of children"""
|
||||||
new_metadata = {"augeasparser": self.parser, "augeaspath": assertions.PASS}
|
|
||||||
new_comment = AugeasCommentNode(comment=assertions.PASS,
|
insertpath, realpath, before = self._aug_resolve_child_position(
|
||||||
ancestor=self,
|
"#comment",
|
||||||
filepath=assertions.PASS,
|
position
|
||||||
|
)
|
||||||
|
new_metadata = {"augeasparser": self.parser, "augeaspath": realpath}
|
||||||
|
|
||||||
|
# Create the new comment
|
||||||
|
self.parser.aug.insert(insertpath, "#comment", before)
|
||||||
|
# Set the comment content
|
||||||
|
self.parser.aug.set(realpath, comment)
|
||||||
|
|
||||||
|
new_comment = AugeasCommentNode(comment=comment,
|
||||||
|
ancestor=assertions.PASS,
|
||||||
|
filepath=apache_util.get_file_path(realpath),
|
||||||
metadata=new_metadata)
|
metadata=new_metadata)
|
||||||
self.children += (new_comment,)
|
|
||||||
return new_comment
|
return new_comment
|
||||||
|
|
||||||
def find_blocks(self, name, exclude=True): # pylint: disable=unused-argument
|
def find_blocks(self, name, exclude=True): # pylint: disable=unused-argument
|
||||||
|
|||||||
@@ -144,6 +144,16 @@ class AugeasParserNodeTest(util.ApacheTest): # pylint: disable=too-many-public-
|
|||||||
found = True
|
found = True
|
||||||
self.assertTrue(found)
|
self.assertTrue(found)
|
||||||
|
|
||||||
|
def test_add_child_comment(self):
|
||||||
|
newc = self.config.parser_root.primary.add_child_comment("The content")
|
||||||
|
comments = self.config.parser_root.find_comments("The content")
|
||||||
|
self.assertEqual(len(comments), 1)
|
||||||
|
self.assertEqual(
|
||||||
|
newc.metadata["augeaspath"],
|
||||||
|
comments[0].primary.metadata["augeaspath"]
|
||||||
|
)
|
||||||
|
self.assertEqual(newc.comment, comments[0].comment)
|
||||||
|
|
||||||
def test_delete_child(self):
|
def test_delete_child(self):
|
||||||
listens = self.config.parser_root.primary.find_directives("Listen")
|
listens = self.config.parser_root.primary.find_directives("Listen")
|
||||||
self.assertEqual(len(listens), 1)
|
self.assertEqual(len(listens), 1)
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ import mock
|
|||||||
from certbot_apache import assertions
|
from certbot_apache import assertions
|
||||||
from certbot_apache import augeasparser
|
from certbot_apache import augeasparser
|
||||||
from certbot_apache import dualparser
|
from certbot_apache import dualparser
|
||||||
from certbot_apache import interfaces
|
|
||||||
|
|
||||||
|
|
||||||
class DualParserNodeTest(unittest.TestCase): # pylint: disable=too-many-public-methods
|
class DualParserNodeTest(unittest.TestCase): # pylint: disable=too-many-public-methods
|
||||||
@@ -151,15 +150,13 @@ class DualParserNodeTest(unittest.TestCase): # pylint: disable=too-many-public-
|
|||||||
self.assertTrue(mock_second.called)
|
self.assertTrue(mock_second.called)
|
||||||
|
|
||||||
def test_add_child_comment(self):
|
def test_add_child_comment(self):
|
||||||
self.assertEqual(len(self.block.primary.children), 0)
|
mock_first = mock.MagicMock(return_value=self.comment.primary)
|
||||||
self.assertEqual(len(self.block.secondary.children), 0)
|
mock_second = mock.MagicMock(return_value=self.comment.secondary)
|
||||||
|
self.block.primary.add_child_comment = mock_first
|
||||||
|
self.block.secondary.add_child_comment = mock_second
|
||||||
self.block.add_child_comment("Comment")
|
self.block.add_child_comment("Comment")
|
||||||
self.assertEqual(len(self.block.primary.children), 1)
|
self.assertTrue(mock_first.called)
|
||||||
self.assertEqual(len(self.block.secondary.children), 1)
|
self.assertTrue(mock_second.called)
|
||||||
self.assertTrue(isinstance(self.block.primary.children[0],
|
|
||||||
interfaces.CommentNode))
|
|
||||||
self.assertEqual(self.block.primary.children[0].ancestor,
|
|
||||||
self.block.primary)
|
|
||||||
|
|
||||||
def test_find_comments(self):
|
def test_find_comments(self):
|
||||||
pri_comments = [augeasparser.AugeasCommentNode(comment="some comment",
|
pri_comments = [augeasparser.AugeasCommentNode(comment="some comment",
|
||||||
|
|||||||
Reference in New Issue
Block a user