summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rwxr-xr-xtest/CMakeLists.txt17
-rw-r--r--test/test_cmark.py490
2 files changed, 0 insertions, 507 deletions
diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
index 186b6a8..2a597ab 100755
--- a/test/CMakeLists.txt
+++ b/test/CMakeLists.txt
@@ -73,20 +73,3 @@ ELSE(PYTHONINTERP_FOUND)
ENDIF(PYTHONINTERP_FOUND)
-if (PYTHON_BINDING_TESTS)
- find_package(PythonInterp 3 REQUIRED)
-else(PYTHON_BINDING_TESTS)
- find_package(PythonInterp 3)
-endif(PYTHON_BINDING_TESTS)
-
-IF (PYTHONINTERP_FOUND)
- add_test(python3_bindings
- ${PYTHON_EXECUTABLE}
- "${CMAKE_CURRENT_SOURCE_DIR}/test_cmark.py"
- "${CMAKE_CURRENT_BINARY_DIR}/../src"
- )
-ELSE(PYTHONINTERP_FOUND)
- message("\n*** A python 3 interpreter is required to run the python binding tests.\n")
- add_test(skipping_python_binding_tests
- echo "Skipping python binding tests, because no python 3 interpreter is available.")
-ENDIF(PYTHONINTERP_FOUND)
diff --git a/test/test_cmark.py b/test/test_cmark.py
deleted file mode 100644
index 6726c51..0000000
--- a/test/test_cmark.py
+++ /dev/null
@@ -1,490 +0,0 @@
-# -*- coding: utf8 -*-
-
-from __future__ import unicode_literals
-
-import sys
-import os
-import unittest
-import argparse
-
-here = os.path.abspath(os.path.dirname(__file__))
-sys.path.append(os.path.join(here, os.pardir, 'wrappers'))
-from wrapper import *
-
-class TestHighLevel(unittest.TestCase):
- def test_markdown_to_html(self):
- self.assertEqual(markdown_to_html('foo'), '<p>foo</p>\n')
-
- def test_parse_document(self):
- doc = parse_document('foo')
- self.assertEqual(type(doc), Document)
-
-class TestParser(unittest.TestCase):
- def test_lifecycle(self):
- parser = Parser()
- del parser
-
- def test_feed(self):
- parser = Parser()
- parser.feed('‘')
-
- def test_finish(self):
- parser = Parser()
- parser.feed('‘')
- doc = parser.finish()
-
- def test_source_map(self):
- parser = Parser()
- parser.feed('‘')
- doc = parser.finish()
- source_map = parser.get_source_map()
- extents = [e for e in source_map]
- self.assertEqual(len(extents), 1)
- self.assertEqual(extents[0].type, ExtentType.CONTENT)
- self.assertEqual(extents[0].start, 0)
- self.assertEqual(extents[0].stop, 3)
-
- def test_render_html(self):
- parser = Parser()
- parser.feed('‘')
- doc = parser.finish()
- res = doc.to_html()
- self.assertEqual(res, '<p>‘</p>\n')
-
- def test_render_xml(self):
- parser = Parser()
- parser.feed('‘')
- doc = parser.finish()
- res = doc.to_xml()
- self.assertEqual(
- res,
- '<?xml version="1.0" encoding="UTF-8"?>\n'
- '<!DOCTYPE document SYSTEM "CommonMark.dtd">\n'
- '<document xmlns="http://commonmark.org/xml/1.0">\n'
- ' <paragraph>\n'
- ' <text>‘</text>\n'
- ' </paragraph>\n'
- '</document>\n')
-
- def test_render_commonmark(self):
- parser = Parser()
- parser.feed('‘')
- doc = parser.finish()
- res = doc.to_commonmark()
- self.assertEqual(res, '‘\n')
-
- def test_render_man(self):
- parser = Parser()
- parser.feed('‘')
- doc = parser.finish()
- res = doc.to_man()
- self.assertEqual(
- res,
- '.PP\n'
- '\[oq]\n')
-
- def test_render_latex(self):
- parser = Parser()
- parser.feed('‘')
- doc = parser.finish()
- res = doc.to_latex()
- self.assertEqual(res, '`\n')
-
-class TestNode(unittest.TestCase):
- def test_type(self):
- parser = Parser()
- parser.feed('foo')
- doc = parser.finish()
- self.assertEqual(type(doc), Document)
-
- def test_first_child(self):
- parser = Parser()
- parser.feed('foo')
- doc = parser.finish()
- child1 = doc.first_child
- child2 = doc.first_child
- self.assertEqual(child1, child2)
- self.assertEqual((child1 != child2), False)
-
- def test_last_child(self):
- parser = Parser()
- parser.feed('foo')
- doc = parser.finish()
- child1 = doc.first_child
- child2 = doc.last_child
- self.assertEqual(child1, child2)
- self.assertEqual((child1 != child2), False)
-
- def test_next(self):
- parser = Parser()
- parser.feed('foo *bar*')
- doc = parser.finish()
- para = doc.first_child
- self.assertEqual(type(para), Paragraph)
- text = para.first_child
- self.assertEqual(type(text), Text)
- emph = text.next
- self.assertEqual(type(emph), Emph)
- self.assertEqual(para.next, None)
-
- def test_previous(self):
- parser = Parser()
- parser.feed('foo *bar*')
- doc = parser.finish()
- para = doc.first_child
- text = para.first_child
- emph = text.next
- self.assertEqual(emph.previous, text)
- self.assertEqual(para.previous, None)
-
- def test_children(self):
- parser = Parser()
- parser.feed('foo *bar*')
- doc = parser.finish()
- para = doc.first_child
- children = [c for c in para]
- self.assertEqual(len(children), 2)
- self.assertEqual(type(children[0]), Text)
- self.assertEqual(type(children[1]), Emph)
-
- def test_new(self):
- with self.assertRaises(NotImplementedError):
- n = Node()
-
- def test_unlink(self):
- parser = Parser()
- parser.feed('foo *bar*')
- doc = parser.finish()
- para = doc.first_child
- para.unlink()
- self.assertEqual(doc.to_html(), '')
-
- def test_append_child(self):
- parser = Parser()
- parser.feed('')
- doc = parser.finish()
- doc.append_child(Paragraph())
- self.assertEqual(doc.to_html(), '<p></p>\n')
- with self.assertRaises(LibcmarkError):
- doc.append_child(Text(literal='foo'))
-
- def test_prepend_child(self):
- parser = Parser()
- parser.feed('foo')
- doc = parser.finish()
- doc.prepend_child(Paragraph())
- self.assertEqual(doc.to_html(), '<p></p>\n<p>foo</p>\n')
- with self.assertRaises(LibcmarkError):
- doc.prepend_child(Text(literal='foo'))
-
- def test_insert_before(self):
- parser = Parser()
- parser.feed('foo')
- doc = parser.finish()
- para = doc.first_child
- para.insert_before(Paragraph())
- self.assertEqual(doc.to_html(), '<p></p>\n<p>foo</p>\n')
- with self.assertRaises(LibcmarkError):
- para.insert_before(Text(literal='foo'))
-
- def test_insert_after(self):
- parser = Parser()
- parser.feed('foo')
- doc = parser.finish()
- para = doc.first_child
- para.insert_after(Paragraph())
- self.assertEqual(doc.to_html(), '<p>foo</p>\n<p></p>\n')
- with self.assertRaises(LibcmarkError):
- para.insert_after(Text(literal='foo'))
-
- def test_consolidate_text_nodes(self):
- parser = Parser()
- parser.feed('foo **bar*')
- doc = parser.finish()
- self.assertEqual(len([c for c in doc.first_child]), 3)
- doc.consolidate_text_nodes()
- self.assertEqual(len([c for c in doc.first_child]), 2)
-
-class TestLiteral(unittest.TestCase):
- def test_text(self):
- parser = Parser()
- parser.feed('foo')
- doc = parser.finish()
- para = doc.first_child
- self.assertEqual(type(para), Paragraph)
- text = para.first_child
- self.assertEqual(type(text), Text)
- self.assertEqual(text.literal, 'foo')
- text.literal = 'bar'
- self.assertEqual(text.to_html(), 'bar')
-
-class TestDocument(unittest.TestCase):
- def test_new(self):
- doc = Document()
- self.assertEqual(doc.to_html(),
- '')
-
-class TestBlockQuote(unittest.TestCase):
- def test_new(self):
- bq = BlockQuote()
- self.assertEqual(bq.to_html(),
- '<blockquote>\n</blockquote>\n')
-
-class TestList(unittest.TestCase):
- def test_new(self):
- list_ = List()
- self.assertEqual(list_.to_html(),
- '<ul>\n</ul>\n')
-
- def test_type(self):
- parser = Parser()
- parser.feed('* foo')
- doc = parser.finish()
- list_ = doc.first_child
- self.assertEqual(type(list_), List)
- self.assertEqual(list_.type, ListType.BULLET)
- list_.type = ListType.ORDERED
- self.assertEqual(doc.to_html(),
- '<ol>\n'
- '<li>foo</li>\n'
- '</ol>\n')
-
- def test_start(self):
- parser = Parser()
- parser.feed('2. foo')
- doc = parser.finish()
- list_ = doc.first_child
- self.assertEqual(type(list_), List)
- self.assertEqual(list_.start, 2)
- list_.start = 1
- self.assertEqual(doc.to_commonmark(),
- '1. foo\n')
- with self.assertRaises(LibcmarkError):
- list_.start = -1
- list_.type = ListType.BULLET
-
- def test_delim(self):
- parser = Parser()
- parser.feed('1. foo')
- doc = parser.finish()
- list_ = doc.first_child
- self.assertEqual(type(list_), List)
- self.assertEqual(list_.delim, '.')
- list_.delim = ')'
- self.assertEqual(doc.to_commonmark(),
- '1) foo\n')
-
- def test_tight(self):
- parser = Parser()
- parser.feed('* foo\n'
- '\n'
- '* bar\n')
- doc = parser.finish()
- list_ = doc.first_child
- self.assertEqual(type(list_), List)
- self.assertEqual(list_.tight, False)
- self.assertEqual(doc.to_commonmark(),
- ' - foo\n'
- '\n'
- ' - bar\n')
-
- list_.tight = True
- self.assertEqual(doc.to_commonmark(),
- ' - foo\n'
- ' - bar\n')
-
- with self.assertRaises(LibcmarkError):
- list_.tight = 42
-
-class TestItem(unittest.TestCase):
- def test_new(self):
- item = Item()
- self.assertEqual(item.to_html(),
- '<li></li>\n')
-
-class TestCodeBlock(unittest.TestCase):
- def test_new(self):
- cb = CodeBlock(literal='foo', fence_info='python')
- self.assertEqual(cb.to_html(),
- '<pre><code class="language-python">foo</code></pre>\n')
-
- def test_fence_info(self):
- parser = Parser()
- parser.feed('``` markdown\n'
- 'hello\n'
- '```\n')
- doc = parser.finish()
- code_block = doc.first_child
- self.assertEqual(type(code_block), CodeBlock)
- self.assertEqual(code_block.fence_info, 'markdown')
- code_block.fence_info = 'python'
- self.assertEqual(doc.to_commonmark(),
- '``` python\n'
- 'hello\n'
- '```\n')
-
-class TestHtmlBlock(unittest.TestCase):
- def test_new(self):
- hb = HtmlBlock(literal='<p>foo</p>')
- self.assertEqual(hb.to_html(),
- '<p>foo</p>\n')
-
-class TestCustomBlock(unittest.TestCase):
- def test_new(self):
- cb = CustomBlock()
- self.assertEqual(cb.to_html(),
- '')
-
-class TestParagraph(unittest.TestCase):
- def test_new(self):
- para = Paragraph()
- self.assertEqual(para.to_html(),
- '<p></p>\n')
-
-class TestHeading(unittest.TestCase):
- def test_new(self):
- heading = Heading(level=3)
- self.assertEqual(heading.to_html(),
- '<h3></h3>\n')
-
- def test_level(self):
- parser = Parser()
- parser.feed('# foo')
- doc = parser.finish()
- heading = doc.first_child
- self.assertEqual(type(heading), Heading)
- self.assertEqual(heading.level, 1)
- heading.level = 3
- self.assertEqual(heading.level, 3)
-
- self.assertEqual(doc.to_html(),
- '<h3>foo</h3>\n')
-
- with self.assertRaises(LibcmarkError):
- heading.level = 10
-
-class TestThematicBreak(unittest.TestCase):
- def test_new(self):
- tb = ThematicBreak()
- self.assertEqual(tb.to_html(),
- '<hr />\n')
-
-class TestText(unittest.TestCase):
- def test_new(self):
- text = Text(literal='foo')
- self.assertEqual(text.to_html(),
- 'foo')
-
-class TestSoftBreak(unittest.TestCase):
- def test_new(self):
- sb = SoftBreak()
- self.assertEqual(sb.to_html(), '\n')
- self.assertEqual(sb.to_html(options=Parser.OPT_HARDBREAKS),
- '<br />\n')
- self.assertEqual(sb.to_html(options=Parser.OPT_NOBREAKS),
- ' ')
-
-class TestLineBreak(unittest.TestCase):
- def test_new(self):
- lb = LineBreak()
- self.assertEqual(lb.to_html(), '<br />\n')
-
-class TestCode(unittest.TestCase):
- def test_new(self):
- code = Code(literal='bar')
- self.assertEqual(code.to_html(), '<code>bar</code>')
-
-class TestHtmlInline(unittest.TestCase):
- def test_new(self):
- hi = HtmlInline(literal='<b>baz</b>')
- self.assertEqual(hi.to_html(), '<b>baz</b>')
-
-class TestCustomInline(unittest.TestCase):
- def test_new(self):
- ci = CustomInline()
- self.assertEqual(ci.to_html(),
- '')
-
-class TestEmph(unittest.TestCase):
- def test_new(self):
- emph = Emph()
- self.assertEqual(emph.to_html(),
- '<em></em>')
-
-class TestStrong(unittest.TestCase):
- def test_new(self):
- strong = Strong()
- self.assertEqual(strong.to_html(),
- '<strong></strong>')
-
-class TestLink(unittest.TestCase):
- def test_new(self):
- link = Link(url='http://foo.com', title='foo')
- self.assertEqual(link.to_html(),
- '<a href="http://foo.com" title="foo"></a>')
-
- def test_url(self):
- parser = Parser()
- parser.feed('<http://foo.com>\n')
- doc = parser.finish()
- para = doc.first_child
- self.assertEqual(type(para), Paragraph)
- link = para.first_child
- self.assertEqual(type(link), Link)
- self.assertEqual(link.url, 'http://foo.com')
- link.url = 'http://bar.net'
- # Yeah that's crappy behaviour but not our problem here
- self.assertEqual(doc.to_commonmark(),
- '[http://foo.com](http://bar.net)\n')
-
- def test_title(self):
- parser = Parser()
- parser.feed('<http://foo.com>\n')
- doc = parser.finish()
- para = doc.first_child
- self.assertEqual(type(para), Paragraph)
- link = para.first_child
- self.assertEqual(type(link), Link)
- self.assertEqual(link.title, '')
- link.title = 'foo'
- self.assertEqual(doc.to_html(),
- '<p><a href="http://foo.com" title="foo">http://foo.com</a></p>\n')
-
-class TestImage(unittest.TestCase):
- def test_new(self):
- image = Image(url='http://foo.com', title='foo')
- self.assertEqual(image.to_html(),
- '<img src="http://foo.com" alt="" title="foo" />')
-
- def test_url(self):
- parser = Parser()
- parser.feed('![image](image.com)\n')
- doc = parser.finish()
- para = doc.first_child
- self.assertEqual(type(para), Paragraph)
- link = para.first_child
- self.assertEqual(type(link), Image)
- self.assertEqual(link.url, 'image.com')
- link.url = 'http://bar.net'
- self.assertEqual(doc.to_commonmark(),
- '![image](http://bar.net)\n')
-
- def test_title(self):
- parser = Parser()
- parser.feed('![image](image.com "ze image")\n')
- doc = parser.finish()
- para = doc.first_child
- self.assertEqual(type(para), Paragraph)
- image = para.first_child
- self.assertEqual(type(image), Image)
- self.assertEqual(image.title, 'ze image')
- image.title = 'foo'
- self.assertEqual(doc.to_html(),
- '<p><img src="image.com" alt="image" title="foo" /></p>\n')
-
-if __name__=='__main__':
- parser = argparse.ArgumentParser()
- parser.add_argument('libdir')
- args = parser.parse_known_args()
- conf.set_library_path(args[0].libdir)
- unittest.main(argv=[sys.argv[0]] + args[1])