def test_parse1(self): parser = Parser() node1 = parser.parse_string("> a\n> b\n> c") node2 = QuotationNode( nodes=[TextNode("a"), TextNode("b"), TextNode("c")]) self.assertEqual(str(node1), str(node2))
def test_parse_list1(self): parser = Parser() node1 = parser.parse_string( "- 0\n" + " * 1\n" + " - 2\n" + " * 1") node2 = OrderedListNode(nodes=[ ListItemNode(nodes=[ TextNode("0"), UnOrderedListNode(nodes=[ ListItemNode(nodes=[ TextNode("1"), OrderedListNode(nodes=[ ListItemNode(nodes=[ TextNode("2") ]) ]) ]), ListItemNode(nodes=[ TextNode("1") ]) ]) ]) ]) self.assertEqual(str(node1), str(node2))
def test_parse2(self): parser = Parser() node1 = parser.parse_string( "@audio example.mp3\n@audio @src example.mp3\n@audio @src example.wav audio/wav") node2 = AudioNode( preload="none", controls=True, nodes=[ SourceNode( src="example.mp3", type="audio/mpeg"), SourceNode( src="example.mp3", type="audio/mpeg"), SourceNode( src="example.wav", type="audio/wav"), ParagraphNode(nodes=[ TextNode( "Your browser has not supported playing audio with HTML5."), TextNode("You can download audio from "), LinkNode( href="example.mp3", target="_blank", nodes=[ TextNode("here") ]), TextNode(".") ]) ]) self.assertEqual(str(node1), str(node2))
def test_parse4(self): parser = Parser() node1 = parser.parse_string("@image example.png\n" + "@image @case @src example1x.webp 1x\n" + "@image @case @src example2x.webp 2x\n" + "@image @case\n" + "@image @case @src example1x.png 1x\n" + "@image @case @src example2x.png 2x") node2 = LinkNode( href="example.png", target="_blank", nodes=[ PictureNode(nodes=[ SourceNode(srcset=SrcsetAttribute([ Srcset("example1x.webp", width=Resolution(1)), Srcset("example2x.webp", width=Resolution(2)) ]), type="image/webp"), SourceNode(srcset=SrcsetAttribute([ Srcset("example1x.png", width=Resolution(1)), Srcset("example2x.png", width=Resolution(2)) ]), type="image/png"), ImageNode(src="example.png", decoding="async") ]) ]) self.assertEqual(str(node1), str(node2))
def test_parse2(self): parser = Parser() node1 = parser.parse_string("> a\n> b\n> c\n>> https://example.com") node2 = QuotationNode( cite="https://example.com", nodes=[TextNode("a"), TextNode("b"), TextNode("c")]) self.assertEqual(str(node1), str(node2))
def test_parse1(self): parser = Parser() node1 = parser.parse_string("newline \n") node2 = ParagraphNode(nodes=[ TextNode("newline"), NewlineNode() ]) self.assertEqual(str(node1), str(node2))
def test_parse3(self): parser = Parser() node1 = parser.parse_string("# h1\n## h2") node2 = RootNode(nodes=[ HeadingNode(1, nodes=[TextNode("h1")]), HeadingNode(2, nodes=[TextNode("h2")]) ]) self.assertEqual(str(node1), str(node2))
def test_parse3(self): parser = Parser() node1 = parser.parse_string("text then <b>bold</b>!") node2 = ParagraphNode(nodes=[ TextNode("text then "), HTMLNode("<b>bold</b>"), TextNode("!") ]) self.assertEqual(str(node1), str(node2))
def test_parse1(self): parser = Parser() node1 = parser.parse_string("[https://example.com]") node2 = ParagraphNode(nodes=[ LinkNode(href="https://example.com", target="_blank", nodes=[TextNode("https://example.com")]) ]) self.assertEqual(str(node1), str(node2))
def test_parse4(self): parser = Parser() node1 = parser.parse_string("text then <img src=\"example.png\"/>!") node2 = ParagraphNode(nodes=[ TextNode("text then "), HTMLNode("<img src=\"example.png\"/>"), TextNode("!") ]) self.assertEqual(str(node1), str(node2))
def test_parse3(self): parser = Parser() node1 = parser.parse_string("text then ~~delete~~!") node2 = ParagraphNode(nodes=[ TextNode("text then "), DeleteNode(nodes=[TextNode("delete")]), TextNode("!") ]) self.assertEqual(str(node1), str(node2))
def test_parse2(self): parser = Parser() node1 = parser.parse_string("text then `<b>example</b>`!") node2 = ParagraphNode(nodes=[ TextNode("text then "), InlineCodeNode("<b>example</b>"), TextNode("!") ]) self.assertEqual(str(node1), str(node2))
def test_parse3(self): parser = Parser() node1 = parser.parse_string("text then **strong**!") node2 = ParagraphNode(nodes=[ TextNode("text then "), StrongNode(nodes=[TextNode("strong")]), TextNode("!") ]) self.assertEqual(str(node1), str(node2))
def test_parse1(self): parser = Parser() node1 = parser.parse_string("*emphasis*") node2 = ParagraphNode(nodes=[ EmphasisNode(nodes=[ TextNode("emphasis") ]) ]) self.assertEqual(str(node1), str(node2))
def test_parse3(self): parser = Parser() node1 = parser.parse_string("text then *emphasis*!") node2 = ParagraphNode(nodes=[ TextNode("text then "), EmphasisNode(nodes=[ TextNode("emphasis") ]), TextNode("!") ]) self.assertEqual(str(node1), str(node2))
def test_parse1(self): parser = Parser() node1 = parser.parse_string("@image example.png\n" + "@image @alt alt text.\n" + "@image @title title text.") node2 = LinkNode(href="example.png", target="_blank", nodes=[ ImageNode(src="example.png", alt="alt text.", title="title text.", decoding="async") ]) self.assertEqual(str(node1), str(node2))
def test_parse2(self): parser = Parser() node1 = parser.parse_string("@image example.png\n" + "@image @case @src example1x.png 1x\n" + "@image @case @src example2x.png 2x") node2 = LinkNode(href="example.png", target="_blank", nodes=[ ImageNode(src="example.png", srcset=SrcsetAttribute([ Srcset("example1x.png", width=Resolution(1)), Srcset("example2x.png", width=Resolution(2)) ]), decoding="async") ]) self.assertEqual(str(node1), str(node2))
def test_parse_ordered_list1(self): parser = Parser() node1 = parser.parse_string( "- a\n" + "- b\n" + "- c") node2 = OrderedListNode(nodes=[ ListItemNode(nodes=[ TextNode("a") ]), ListItemNode(nodes=[ TextNode("b") ]), ListItemNode(nodes=[ TextNode("c") ]) ]) self.assertEqual(str(node1), str(node2))
def test_parse7(self): parser = Parser() node1 = parser.parse_string( "@image example.png\n" + "@image @case @src example-square.png 320w\n" + "@image @case @src example-full.png 640w") node2 = LinkNode( href="example.png", target="_blank", nodes=[ PictureNode(nodes=[ SourceNode(srcset=SrcsetAttribute([ Srcset("example-square.png", width=Width(320)), Srcset("example-full.png", width=Width(640)) ]), type="image/png"), ImageNode(src="example.png", decoding="async") ]) ]) self.assertEqual(str(node1), str(node2))
def test_parse_unordered_list2(self): parser = Parser() node1 = parser.parse_string( "* *a*\n" + "* *b*\n" + "* *c*") node2 = UnOrderedListNode(nodes=[ ListItemNode(nodes=[ EmphasisNode(nodes=[ TextNode("a") ]) ]), ListItemNode(nodes=[ EmphasisNode(nodes=[ TextNode("b") ]) ]), ListItemNode(nodes=[ EmphasisNode(nodes=[ TextNode("c") ]) ]) ]) self.assertEqual(str(node1), str(node2))
def test_parse1(self): parser = Parser() node1 = parser.parse_string("~~delete~~") node2 = ParagraphNode(nodes=[DeleteNode(nodes=[TextNode("delete")])]) self.assertEqual(str(node1), str(node2))
def test_parse2(self): parser = Parser() node = parser.parse_string("<img src=\"example.png\"/>") self.assertEqual(str(node), "<img src=\"example.png\"/>")
def test_parse1(self): parser = Parser() node1 = parser.parse_string("`<b>example</b>`") node2 = ParagraphNode(nodes=[InlineCodeNode("<b>example</b>")]) self.assertEqual(str(node1), str(node2))
def test_parse1(self): parser = Parser() node1 = parser.parse_string("example") node2 = ParagraphNode(nodes=[TextNode("example")]) self.assertEqual(str(node1), str(node2))
def test_parse1(self): parser = Parser() node1 = parser.parse_string("# h1") node2 = HeadingNode(1, nodes=[TextNode("h1")]) self.assertEqual(str(node1), str(node2))
def test_parse1(self): parser = Parser() node1 = parser.parse_string("**strong**") node2 = ParagraphNode(nodes=[StrongNode(nodes=[TextNode("strong")])]) self.assertEqual(str(node1), str(node2))
def test_parse1(self): parser = Parser() node1 = parser.parse_string("```\n" + "<b>example</b>\n" + "```") node2 = CodeNode("<b>example</b>") self.assertEqual(str(node1), str(node2))
def test_parse2(self): parser = Parser() node1 = parser.parse_string("```html\n" + "<b>example</b>\n" + "```") node2 = CodeNode("<b>example</b>", language="html") self.assertEqual(str(node1), str(node2))
def test_parse1(self): parser = Parser() node = parser.parse_string("<b>bold</b>") self.assertEqual(str(node), "<b>bold</b>")
def test_parse3(self): parser = Parser() node1 = parser.parse_string("[goto hash](#hash)") node2 = ParagraphNode( nodes=[LinkNode(href="#hash", nodes=[TextNode("goto hash")])]) self.assertEqual(str(node1), str(node2))