|
9 | 9 |
|
10 | 10 | from AdvancedHTMLParser.Parser import AdvancedHTMLParser |
11 | 11 |
|
| 12 | +from AdvancedHTMLParser.Formatter import AdvancedHTMLSlimTagFormatter, AdvancedHTMLSlimTagMiniFormatter |
| 13 | + |
12 | 14 | TEST_HTML = '''<html><head><title>Hello World</title></head> |
13 | 15 | <body> |
14 | 16 | <div>Hello world <span>And welcome to the show.</span> |
15 | 17 | </div> |
16 | 18 | </body></html>''' |
17 | 19 |
|
| 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 | + |
18 | 27 | class TestFormatting(object): |
19 | 28 |
|
20 | 29 | # TODO: Add a test which checks that we retain whitespace |
@@ -62,7 +71,46 @@ def test_getMiniHTML(self): |
62 | 71 |
|
63 | 72 | assert miniHTML == '<html ><head ><title >Hello World</title></head> <body > <div >Hello world <span >And welcome to the show.</span> </div> </body></html>' |
64 | 73 |
|
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 | + |
66 | 114 |
|
67 | 115 | if __name__ == '__main__': |
68 | 116 | 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