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()