Skip to content

Commit

Permalink
Fix HTML for root tag
Browse files Browse the repository at this point in the history
  • Loading branch information
rushter committed Sep 21, 2021
1 parent 482fa59 commit 243b205
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 1 deletion.
1 change: 1 addition & 0 deletions selectolax/parser.pxd
Original file line number Diff line number Diff line change
Expand Up @@ -440,6 +440,7 @@ cdef extern from "myhtml/tree.h" nogil:
myhtml_tree_node_t * myhtml_tree_node_clone(myhtml_tree_node_t* node)
myhtml_tree_node_t * myhtml_tree_node_insert_root(myhtml_tree_t* tree, myhtml_token_node_t* token,
myhtml_namespace ns)
void myhtml_tree_node_add_child(myhtml_tree_node_t* root, myhtml_tree_node_t* node)

cdef extern from "myhtml/serialization.h" nogil:
mystatus_t myhtml_serialization(myhtml_tree_node_t* scope_node, mycore_string_raw_t* str)
Expand Down
2 changes: 1 addition & 1 deletion selectolax/parser.pyx
Original file line number Diff line number Diff line change
Expand Up @@ -385,7 +385,7 @@ cdef class HTMLParser:
raise RuntimeError("Can't init MyHTML Tree object.")

node = myhtml_node_clone_deep(html_tree, self.html_tree.node_html)
myhtml_tree_node_insert_root(html_tree, NULL, MyHTML_NAMESPACE_HTML)
myhtml_tree_node_add_child(html_tree.document, node)
html_tree.node_html = node

cls = HTMLParser.from_tree(
Expand Down
11 changes: 11 additions & 0 deletions tests/test_parser.py
Original file line number Diff line number Diff line change
Expand Up @@ -108,3 +108,14 @@ def test_tags(parser):
""")
assert len(html_parser.tags('div')) == 5


@pytest.mark.parametrize(*_PARSERS_PARAMETRIZER)
def test_preserves_doctype(parser):
html_parser = parser("""
<!DOCTYPE html>
<html>
<head><title>Test</title></head>
<body><p>Hello World</p></body>
</html>
""")
assert '<!DOCTYPE html>' in html_parser.html

0 comments on commit 243b205

Please sign in to comment.