8
8
warnings .simplefilter ("error" )
9
9
10
10
from support import html5lib_test_files as data_files
11
- from support import TestData , convert , convertExpected
11
+ from support import TestData , convert , convertExpected , treeTypes
12
12
import html5lib
13
13
from html5lib import html5parser , treebuilders , constants
14
14
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
-
63
15
#Run the parse error checks
64
16
checkParseErrors = False
65
17
@@ -91,7 +43,7 @@ def runParserTest(innerHTML, input, expected, errors, treeClass,
91
43
return
92
44
except :
93
45
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' ) ])
95
47
assert False , errorMsg .encode ("utf8" )
96
48
97
49
output = convertTreeDump (p .tree .testSerializer (document ))
@@ -108,8 +60,8 @@ def runParserTest(innerHTML, input, expected, errors, treeClass,
108
60
((line ,col ), errorcode , datavars ) in p .errors ]
109
61
110
62
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 )])
113
65
if checkParseErrors :
114
66
assert len (p .errors ) == len (errors ), errorMsg2 .encode ("utf-8" )
115
67
@@ -120,15 +72,15 @@ def test_parser():
120
72
for filename in files :
121
73
testName = os .path .basename (filename ).replace (".dat" ,"" )
122
74
123
- tests = TestData (filename , "data" )
75
+ tests = TestData (filename , u "data" )
124
76
125
77
for index , test in enumerate (tests ):
126
78
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' ]
130
82
if errors :
131
- errors = errors .split ("\n " )
83
+ errors = errors .split (u "\n " )
132
84
133
85
for treeName , treeCls in treeTypes .iteritems ():
134
86
for namespaceHTMLElements in (True , False ):
0 commit comments