22import sys
33import StringIO
44import unittest
5- from support import html5lib_test_files , TestData
5+ from support import html5lib_test_files , TestData , convert , convertExpected
66
77from html5lib import html5parser , treebuilders
88
4646#Run the parse error checks
4747checkParseErrors = False # TODO
4848
49- def convert (stripChars ):
50- def convertData (data ):
51- """convert the output of str(document) to the format used in the testcases"""
52- data = data .split ("\n " )
53- rv = []
54- for line in data :
55- if line .startswith ("|" ):
56- rv .append (line [stripChars :])
57- else :
58- rv .append (line )
59- return "\n " .join (rv )
60- return convertData
6149#XXX - There should just be one function here but for some reason the testcase
6250#format differs from the treedump format by a single space character
63-
6451def convertTreeDump (data ):
6552 return "\n " .join (convert (3 )(data ).split ("\n " )[1 :])
6653
67- convertExpected = convert (2 )
68-
6954import re
7055attrlist = re .compile (r"^(\s+)\w+=.*(\n\1\w+=.*)+" ,re .M )
7156def sortattrs (x ):
@@ -98,9 +83,6 @@ def runParserTest(self, innerHTML, input, expected, errors, treeClass):
9883 if checkParseErrors :
9984 self .assertEquals (len (p .errors ), len (errors ), errorMsg2 )
10085
101- def test_parser ():
102- yield innerHTML , input , expected , errors , treeName , treeCls
103-
10486def buildTestSuite ():
10587 sys .stdout .write ('Testing tree builders ' + " " .join (treeTypes .keys ()) + "\n " )
10688
@@ -112,10 +94,10 @@ def buildTestSuite():
11294 tests = TestData (filename , ("data" , "errors" , "document-fragment" ,
11395 "document" ))
11496
115- for index , test in enumerate (tests ):
116- errors = test [ ' errors' ] .split ("\n " )
117- def testFunc (self , innerHTML = test [ 'document-fragment' ] , input = test [ 'data' ] ,
118- expected = test [ 'document' ] , errors = errors , treeCls = treeCls ):
97+ for index , ( input , errors , innerHTML , expected ) in enumerate (tests ):
98+ errors = errors .split ("\n " )
99+ def testFunc (self , innerHTML = innerHTML , input = input ,
100+ expected = expected , errors = errors , treeCls = treeCls ):
119101 return self .runParserTest (innerHTML , input , expected , errors , treeCls )
120102 setattr (TestCase , "test_%s_%d_%s" % (testName ,index + 1 ,treeName ),
121103 testFunc )
0 commit comments