import unittest from reStructuredText import HTML class TestReST(unittest.TestCase): def testRoman(self): # Make sure we can import the rst parser from docutils.parsers import rst def testWithSingleSubtitle(self): input = ''' title ----- subtitle ++++++++ text ''' expected='''

title

subtitle

text

''' output = HTML(input) self.assertEquals(output, expected) def test_include_directive_raises(self): source = 'hello world\n .. include:: /etc/passwd' self.assertRaises(NotImplementedError, HTML, source) def test_raw_directive_disabled(self): EXPECTED = '

HELLO WORLD

' source = '.. raw:: html\n\n %s\n' % EXPECTED result = HTML(source) # don't raise, but don't work either self.failIf(EXPECTED in result) self.failUnless(""raw" directive disabled" in result) from cgi import escape self.failUnless(escape(EXPECTED) in result) def test_raw_directive_file_option_raises(self): source = '.. raw:: html\n :file: inclusion.txt' self.assertRaises(NotImplementedError, HTML, source) def test_raw_directive_url_option_raises(self): source = '.. raw:: html\n :url: http://www.zope.org' self.assertRaises(NotImplementedError, HTML, source) def test_csv_table_file_option_raise(self): source = '.. csv-table:: \n :file: inclusion.txt' result = HTML(source) self.failUnless('directive disabled' in result) def test_csv_table_url_option_raise(self): source = '.. csv-table:: \n :url: http://www.evil.org' result = HTML(source) self.failUnless('directive disabled' in result) def test_suite(): from unittest import TestSuite, makeSuite return TestSuite((makeSuite(TestReST),))