# This file is part of python-markups test suite
# License: BSD
# Copyright: (C) Dmitry Shachnev, 2012-2014

import unittest
from markups import ReStructuredTextMarkup

basic_text = \
'''Hello, world!
=============

This is an example **reStructuredText** document.'''

@unittest.skipUnless(ReStructuredTextMarkup.available(), 'Docutils not available')
class ReStructuredTextTest(unittest.TestCase):
	def test_basic(self):
		markup = ReStructuredTextMarkup()
		text = markup.get_document_body(basic_text)
		title = markup.get_document_title(basic_text)
		markup._enable_cache = True
		text_from_cache = markup.get_document_body(basic_text)
		title_from_cache = markup.get_document_title(basic_text)
		text_expected = \
		'<p>This is an example <strong>reStructuredText</strong> document.</p>\n'
		title_expected = 'Hello, world!'
		self.assertEqual(text_expected, text)
		self.assertEqual(text_expected, text_from_cache)
		self.assertEqual(title_expected, title)
		self.assertEqual(title_expected, title_from_cache)

	def test_mathjax_loading(self):
Example #2
0
Some subtitle
~~~~~~~~~~~~~

This is an example **reStructuredText** document.
'''

basic_html = '''\
<main id="hello-world">
<h1 class="title" data-posmap="2">Hello, world!</h1>
<p class="subtitle" id="some-subtitle">Some subtitle</p>
<p data-posmap="7">This is an example <strong>reStructuredText</strong> document.</p>
</main>
'''

@unittest.skipUnless(ReStructuredTextMarkup.available(), 'Docutils not available')
class ReStructuredTextTest(unittest.TestCase):
	def test_basic(self):
		import docutils
		markup = ReStructuredTextMarkup()
		converted = markup.convert(basic_text)
		text = converted.get_document_body()
		title = converted.get_document_title()
		stylesheet = converted.get_stylesheet()
		text_expected = basic_html
		if docutils.__version_info__[:2] < (0, 17):
			# docutils uses <main> tag since revision 8474
			text_expected = text_expected.replace('<main', '<div class="document"')
			text_expected = text_expected.replace('</main>', '</div>')
		title_expected = 'Hello, world!'
		self.assertEqual(text_expected, text)