88warnings .simplefilter ("error" )
99
1010from support import html5lib_test_files as data_files
11- from support import TestData , convert , convertExpected
11+ from support import TestData , convert , convertExpected , treeTypes
1212import html5lib
1313from html5lib import html5parser , treebuilders , constants
1414
15- treeTypes = {"simpletree" :treebuilders .getTreeBuilder ("simpletree" ),
16- "DOM" :treebuilders .getTreeBuilder ("dom" )}
17-
18- #Try whatever etree implementations are avaliable from a list that are
19- #"supposed" to work
20- try :
21- import xml .etree .ElementTree as ElementTree
22- treeTypes ['ElementTree' ] = treebuilders .getTreeBuilder ("etree" , ElementTree , fullTree = True )
23- except ImportError :
24- try :
25- import elementtree .ElementTree as ElementTree
26- treeTypes ['ElementTree' ] = treebuilders .getTreeBuilder ("etree" , ElementTree , fullTree = True )
27- except ImportError :
28- pass
29-
30- try :
31- import xml .etree .cElementTree as cElementTree
32- treeTypes ['cElementTree' ] = treebuilders .getTreeBuilder ("etree" , cElementTree , fullTree = True )
33- except ImportError :
34- try :
35- import cElementTree
36- treeTypes ['cElementTree' ] = treebuilders .getTreeBuilder ("etree" , cElementTree , fullTree = True )
37- except ImportError :
38- pass
39-
40- try :
41- try :
42- import lxml .html as lxml
43- except ImportError :
44- import lxml .etree as lxml
45- treeTypes ['lxml' ] = treebuilders .getTreeBuilder ("lxml" , lxml , fullTree = True )
46- except ImportError :
47- pass
48-
49- try :
50- import BeautifulSoup
51- treeTypes ["beautifulsoup" ] = treebuilders .getTreeBuilder ("beautifulsoup" , fullTree = True )
52- except ImportError :
53- pass
54-
55- #Try whatever dom implementations are avaliable from a list that are
56- #"supposed" to work
57- try :
58- import pxdom
59- treeTypes ["pxdom" ] = treebuilders .getTreeBuilder ("dom" , pxdom )
60- except ImportError :
61- pass
62-
6315#Run the parse error checks
6416checkParseErrors = False
6517
@@ -91,7 +43,7 @@ def runParserTest(innerHTML, input, expected, errors, treeClass,
9143 return
9244 except :
9345 errorMsg = u"\n " .join ([u"\n \n Input:" , input , u"\n Expected:" , expected ,
94- u"\n Traceback:" , traceback .format_exc ()])
46+ u"\n Traceback:" , traceback .format_exc (). decode ( 'utf8' ) ])
9547 assert False , errorMsg .encode ("utf8" )
9648
9749 output = convertTreeDump (p .tree .testSerializer (document ))
@@ -108,8 +60,8 @@ def runParserTest(innerHTML, input, expected, errors, treeClass,
10860 ((line ,col ), errorcode , datavars ) in p .errors ]
10961
11062 errorMsg2 = u"\n " .join ([u"\n \n Input:" , input ,
111- u"\n Expected errors (" + str (len (errors )) + u"):\n " + u"\n " .join (errors ),
112- u"\n Actual errors (" + str (len (p .errors )) + u"):\n " + u"\n " .join (errStr )])
63+ u"\n Expected errors (" + unicode (len (errors )) + u"):\n " + u"\n " .join (errors ),
64+ u"\n Actual errors (" + unicode (len (p .errors )) + u"):\n " + u"\n " .join (errStr )])
11365 if checkParseErrors :
11466 assert len (p .errors ) == len (errors ), errorMsg2 .encode ("utf-8" )
11567
@@ -120,15 +72,15 @@ def test_parser():
12072 for filename in files :
12173 testName = os .path .basename (filename ).replace (".dat" ,"" )
12274
123- tests = TestData (filename , "data" )
75+ tests = TestData (filename , u "data" )
12476
12577 for index , test in enumerate (tests ):
12678 input , errors , innerHTML , expected = [test [key ] for key in
127- 'data' , 'errors' ,
128- 'document-fragment' ,
129- 'document' ]
79+ u 'data' , u 'errors' ,
80+ u 'document-fragment' ,
81+ u 'document' ]
13082 if errors :
131- errors = errors .split ("\n " )
83+ errors = errors .split (u "\n " )
13284
13385 for treeName , treeCls in treeTypes .iteritems ():
13486 for namespaceHTMLElements in (True , False ):
0 commit comments