import unittest from simple_footnotes import parse_for_footnotes class PseudoArticleGenerator(object): articles = [] class PseudoArticle(object): _content = "" slug = "article" class TestFootnotes(unittest.TestCase): def _expect(self, input, expected_output): ag = PseudoArticleGenerator() art = PseudoArticle() art._content = input ag.articles = [art] parse_for_footnotes(ag) self.assertEqual(art._content, expected_output) def test_simple(self): self._expect( "words[ref]footnote[/ref]end", ( 'words<sup id="sf-article-1-back"><a title="footnote" ' 'href="#sf-article-1" class="simple-footnote">1</a></sup>end' '<ol class="simple-footnotes">' u'<li id="sf-article-1">footnote <a href="#sf-article-1-back" class="simple-footnote-back">\u21a9</a></li>' "</ol>" ), ) def test_no_footnote_inside_code(self): self._expect( "words<code>this is code[ref]footnote[/ref] end code </code> end", "words<code>this is code[ref]footnote[/ref] end code </code> end", ) if __name__ == "__main__": unittest.main()