diff --git a/py/rest/rst.py b/py/rest/rst.py index d13f1f2d5..585cf42ce 100644 --- a/py/rest/rst.py +++ b/py/rest/rst.py @@ -79,6 +79,7 @@ class AbstractNode(object): returns a reference to the child """ + self._add(child) return child def _add(self, child): @@ -349,7 +350,8 @@ class Link(AbstractText): if self.rest is None: self.rest = self.find_rest() if self.rest.links.get(self._text, self.target) != self.target: - raise ValueError('link name already in use for a different target') + raise ValueError('link name %r already in use for a different ' + 'target' % (self.target,)) self.rest.links[self._text] = self.target return AbstractText.text(self) diff --git a/py/rest/testing/test_rst.py b/py/rest/testing/test_rst.py index c3b4b91b9..696470369 100644 --- a/py/rest/testing/test_rst.py +++ b/py/rest/testing/test_rst.py @@ -88,7 +88,7 @@ def test_basic_inline_2(): txt = Strong('bar').text() assert txt == '**bar**' -def test_text_join(): +def test_text_multiple_arguments(): txt = Paragraph(Text("dupa"), Text("dupa")).text() assert txt == "dupa dupa" @@ -97,6 +97,12 @@ def test_text_join(): txt = txt.join(Text("happen at sea"), Text("you know")) assert txt.text() == "worse things happen at sea you know" +def test_text_add(): + p = Paragraph(Text('grmbl')) + p2 = p.add(Text('grmbl too')) + assert p2.text() == 'grmbl too' + assert p.text() == 'grmbl grmbl too' + def test_paragraph_basic(): txt = Paragraph(Text('spam')).text() assert txt == 'spam'