Skip to content

Commit d5f1746

Browse files
committed
Add unit tests for the new SlimTag formatters
1 parent d2fcc3b commit d5f1746

File tree

1 file changed

+49
-1
lines changed

1 file changed

+49
-1
lines changed

tests/AdvancedHTMLParserTests/test_Formatting.py

Lines changed: 49 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,21 @@
99

1010
from AdvancedHTMLParser.Parser import AdvancedHTMLParser
1111

12+
from AdvancedHTMLParser.Formatter import AdvancedHTMLSlimTagFormatter, AdvancedHTMLSlimTagMiniFormatter
13+
1214
TEST_HTML = '''<html><head><title>Hello World</title></head>
1315
<body>
1416
<div>Hello world <span>And welcome to the show.</span>
1517
</div>
1618
</body></html>'''
1719

20+
21+
TEST_HTML_2 = '''<html><head></head>
22+
<body> <div>Hello world<br> Welcome to <span id="abc" >The Show</span>
23+
<hr class="whatever">
24+
</div>
25+
</body></html>'''
26+
1827
class TestFormatting(object):
1928

2029
# TODO: Add a test which checks that we retain whitespace
@@ -62,7 +71,46 @@ def test_getMiniHTML(self):
6271

6372
assert miniHTML == '<html ><head ><title >Hello World</title></head> <body > <div >Hello world <span >And welcome to the show.</span> </div> </body></html>'
6473

65-
74+
def test_slimTagFormatter(self):
75+
'''
76+
test_slimTagFormatter - Test the AdvancedHTMLSlimTagFormatter
77+
'''
78+
79+
parser = AdvancedHTMLSlimTagFormatter()
80+
parser.parseStr(TEST_HTML_2)
81+
82+
prettyHTML = parser.getHTML()
83+
84+
assert prettyHTML == '\n<html>\n <head>\n </head> \n <body> \n <div>Hello world\n <br /> Welcome to \n <span id="abc">The Show\n </span> \n <hr class="whatever" /> \n </div> \n </body>\n</html>' , 'Got unexpected HTML output for slim-tag pretty printer with slimSelfClosing=False'
85+
86+
parser = AdvancedHTMLSlimTagFormatter(slimSelfClosing=True)
87+
parser.parseStr(TEST_HTML_2)
88+
89+
prettyHTML = parser.getHTML()
90+
assert prettyHTML == '\n<html>\n <head>\n </head> \n <body> \n <div>Hello world\n <br/> Welcome to \n <span id="abc">The Show\n </span> \n <hr class="whatever"/> \n </div> \n </body>\n</html>' , 'Got unexpected HTML output for slim-tag pretty printer with slimSelfClosing=True'
91+
92+
93+
def test_slimTagMiniFormatter(self):
94+
'''
95+
test_slimTagMiniFormatter - Test the AdvancedHTMLSlimTagMiniFormatter
96+
'''
97+
98+
parser = AdvancedHTMLSlimTagMiniFormatter()
99+
parser.parseStr(TEST_HTML_2)
100+
101+
prettyHTML = parser.getHTML()
102+
103+
print ( repr(prettyHTML) )
104+
105+
assert prettyHTML == '<html><head></head> <body> <div>Hello world<br /> Welcome to <span id="abc">The Show</span> <hr class="whatever" /> </div> </body></html>' , 'Got unexpected HTML output for slim-tag mini printer with slimSelfClosing=False'
106+
107+
108+
parser = AdvancedHTMLSlimTagMiniFormatter(slimSelfClosing=True)
109+
parser.parseStr(TEST_HTML_2)
110+
111+
prettyHTML = parser.getHTML()
112+
assert prettyHTML == '<html><head></head> <body> <div>Hello world<br/> Welcome to <span id="abc">The Show</span> <hr class="whatever"/> </div> </body></html>' , 'Got unexpected HTML output for slim-tag mini printer with slimSelfClosing=True'
113+
66114

67115
if __name__ == '__main__':
68116
sys.exit(subprocess.Popen('GoodTests.py -n1 "%s" %s' %(sys.argv[0], ' '.join(['"%s"' %(arg.replace('"', '\\"'), ) for arg in sys.argv[1:]]) ), shell=True).wait())

0 commit comments

Comments
 (0)