import unittest from markdown import parse # Tests adapted from `problem-specifications//canonical-data.json` class MarkdownTest(unittest.TestCase): def test_parses_normal_text_as_a_paragraph(self): self.assertEqual( parse("This will be a paragraph"), "

This will be a paragraph

" ) def test_parsing_italics(self): self.assertEqual( parse("_This will be italic_"), "

This will be italic

" ) def test_parsing_bold_text(self): self.assertEqual( parse("__This will be bold__"), "

This will be bold

" ) def test_mixed_normal_italics_and_bold_text(self): self.assertEqual( parse("This will _be_ __mixed__"), "

This will be mixed

", ) def test_with_h1_header_level(self): self.assertEqual(parse("# This will be an h1"), "

This will be an h1

") def test_with_h2_header_level(self): self.assertEqual(parse("## This will be an h2"), "

This will be an h2

") def test_with_h6_header_level(self): self.assertEqual( parse("###### This will be an h6"), "
This will be an h6
" ) def test_unordered_lists(self): self.assertEqual( parse("* Item 1\n* Item 2"), "" ) def test_with_a_little_bit_of_everything(self): self.assertEqual( parse("# Header!\n* __Bold Item__\n* _Italic Item_"), "

Header!

", ) def test_with_markdown_symbols_in_the_header_text_that_should_not_be_interpreted( self ): self.assertEqual( parse("# This is a header with # and * in the text"), "

This is a header with # and * in the text

", ) def test_with_markdown_symbols_in_the_list_item_text_that_should_not_be_interpreted( self ): self.assertEqual( parse("* Item 1 with a # in the text\n* Item 2 with * in the text"), "", ) def test_with_markdown_symbols_in_the_paragraph_text_that_should_not_be_interpreted( self ): self.assertEqual( parse("This is a paragraph with # and * in the text"), "

This is a paragraph with # and * in the text

", ) def test_unordered_lists_close_properly_with_preceding_and_following_lines(self): self.assertEqual( parse("# Start a list\n* Item 1\n* Item 2\nEnd a list"), "

Start a list

End a list

", ) if __name__ == "__main__": unittest.main()