def test_transpose_lower(): serializer = HTMLSerializer() serializer.doctype = None serializer.inject_type = False serializer.transpose = string.lower t = kid.Template("<HTML><HEAD /></HTML>") t.serializer = serializer expected = '<html><head></head></html>' rslt = t.serialize() assert rslt == expected
def test_transpose_off(): serializer = HTMLSerializer() serializer.doctype = None serializer.inject_type = False serializer.transpose = None t = kid.Template("<HTML><HEAD /></HTML>") t.serializer = serializer expected = '<HTML><HEAD></HEAD></HTML>' rslt = t.serialize() assert rslt == expected
def test_strip_lang(): serializer = HTMLSerializer(transpose=True) serializer.doctype = doctypes['html-strict'] t = kid.Template("<html xml:lang='en' lang='en' />") t.serializer = serializer expected = '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"' \ ' "http://www.w3.org/TR/html4/strict.dtd">\n' \ '<HTML LANG="en"></HTML>' rslt = t.serialize() assert rslt == expected
def test_html_transpose(): t = kid.Template('<HtMl/>') t.serializer = HTMLSerializer() rslt = t.serialize() assert rslt.endswith('<html></html>') t.serializer = HTMLSerializer(transpose=False) rslt = t.serialize() assert rslt.endswith('<html></html>') t.serializer = HTMLSerializer(transpose=True) rslt = t.serialize() assert rslt.endswith('<HTML></HTML>') t.serializer = HTMLSerializer(transpose=None) rslt = t.serialize() assert rslt.endswith('<HtMl></HtMl>') def transpose(s): return s.capitalize() t.serializer = HTMLSerializer(transpose=transpose) rslt = t.serialize() assert rslt.endswith('<Html></Html>')
def test_doctype_and_injection(): serializer = HTMLSerializer(encoding='utf-8', transpose=True) serializer.doctype = doctypes['html-strict'] serializer.inject_type = True source = "<html><head /></html>" t = kid.Template(source) t.serializer = serializer from kid.format import Format format = Format(no_empty_lines=True) rslt = t.serialize(format=format) rslt = rslt.replace('\n', '') expected = ( '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"' ' "http://www.w3.org/TR/html4/strict.dtd">' '<HTML><HEAD>' '<META CONTENT="text/html; charset=utf-8" HTTP-EQUIV="content-type">' '</HEAD></HTML>') assert rslt == expected serializer = HTMLSerializer(encoding='ascii', transpose=False) serializer.doctype = None serializer.inject_type = True source = ('<html><head>' '<meta content="Reiner Wahnsinn" name="author"/>' '<meta content="nonsense" http-equiv="content-type"/>' '<meta content="garbage" name="keywords"/>' '<title>Content</title>' '</head><body><h1>Hello, World!</h1></body></html>') t = kid.Template(source) t.serializer = serializer rslt = t.serialize() expected = source.replace('/>', '>') assert rslt == expected source = source.replace('content-type', 'garbage-type') t = kid.Template(source) t.serializer = serializer rslt = t.serialize() rslt = rslt.replace('\n', '') expected = source.replace('/>', '>').replace( '<title>', '<meta content="text/html; charset=ascii"' ' http-equiv="content-type"><title>') assert rslt == expected
def test_doctype_and_injection(): serializer = HTMLSerializer(encoding='utf-8', transpose=True) serializer.doctype = doctypes['html-strict'] serializer.inject_type = True source = "<html><head /></html>" t = kid.Template(source) t.serializer = serializer from kid.format import Format format=Format(no_empty_lines=True) rslt = t.serialize(format=format) rslt = rslt.replace('\n', '') expected = ('<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"' ' "http://www.w3.org/TR/html4/strict.dtd">' '<HTML><HEAD>' '<META CONTENT="text/html; charset=utf-8" HTTP-EQUIV="content-type">' '</HEAD></HTML>') assert rslt == expected serializer = HTMLSerializer(encoding='ascii', transpose=False) serializer.doctype = None serializer.inject_type = True source = ('<html><head>' '<meta content="Reiner Wahnsinn" name="author"/>' '<meta content="nonsense" http-equiv="content-type"/>' '<meta content="garbage" name="keywords"/>' '<title>Content</title>' '</head><body><h1>Hello, World!</h1></body></html>') t = kid.Template(source) t.serializer = serializer rslt = t.serialize() expected = source.replace('/>', '>') assert rslt == expected source = source.replace('content-type', 'garbage-type') t = kid.Template(source) t.serializer = serializer rslt = t.serialize() rslt = rslt.replace('\n', '') expected = source.replace('/>', '>').replace('<title>', '<meta content="text/html; charset=ascii"' ' http-equiv="content-type"><title>') assert rslt == expected
# create some default serializers... output_methods = { 'xml': XMLSerializer(decl=True), 'wml': XMLSerializer(decl=True, doctype='wml'), 'xhtml-strict': XHTMLSerializer(decl=False, doctype='xhtml-strict'), 'xhtml': XHTMLSerializer(decl=False, doctype='xhtml'), 'xhtml-frameset': XHTMLSerializer(decl=False, doctype='xhtml-frameset'), 'html-strict': HTMLSerializer(doctype='html-strict'), 'html': HTMLSerializer(doctype='html'), 'html-frameset': HTMLSerializer(doctype='html-frameset'), 'html-quirks': HTMLSerializer(doctype='html-quirks'), 'html-frameset-quirks': HTMLSerializer(doctype='html-frameset-quirks'), 'HTML-strict': HTMLSerializer(doctype='html-strict', transpose=True), 'HTML': HTMLSerializer(doctype='html', transpose=True), 'HTML-frameset': HTMLSerializer(doctype='html-frameset', transpose=True), 'HTML-quirks':
def test_html_quirks_output_method(): t = kid.Template('<html><p>test</p><br /></html>') rslt = t.serialize(output='HTML-quirks') expected = serialize_doctype(doctypes['html-quirks']) + \ '\n<HTML><P>test</P><BR></HTML>' assert rslt == expected def test_xml_output_method(): t = kid.Template('<html><p>test</p><br/></html>') rslt = t.serialize(output='xml') expected = '<?xml version="1.0" encoding="utf-8"?>\n' + \ '<html><p>test</p><br /></html>' assert rslt == expected from kid.serialization import HTMLSerializer, XMLSerializer, XHTMLSerializer serializer = HTMLSerializer() serializer.doctype = None serializer.inject_type = False def HTMLTemplate(text, **kw): t = kid.Template(text, **kw) t.serializer = serializer return t def test_html_transpose(): t = kid.Template('<HtMl/>') t.serializer = HTMLSerializer() rslt = t.serialize() assert rslt.endswith('<html></html>') t.serializer = HTMLSerializer(transpose=False) rslt = t.serialize()
rslt = t.serialize(output='HTML-quirks') expected = serialize_doctype(doctypes['html-quirks']) + \ '\n<HTML><P>test</P><BR></HTML>' assert rslt == expected def test_xml_output_method(): t = kid.Template('<html><p>test</p><br/></html>') rslt = t.serialize(output='xml') expected = '<?xml version="1.0" encoding="utf-8"?>\n' + \ '<html><p>test</p><br /></html>' assert rslt == expected from kid.serialization import HTMLSerializer, XMLSerializer, XHTMLSerializer serializer = HTMLSerializer() serializer.doctype = None serializer.inject_type = False def HTMLTemplate(text, **kw): t = kid.Template(text, **kw) t.serializer = serializer return t def test_html_transpose(): t = kid.Template('<HtMl/>') t.serializer = HTMLSerializer() rslt = t.serialize() assert rslt.endswith('<html></html>')