@@ -13,25 +13,38 @@ class TreeConstructionFile(pytest.File):
13
13
def collect (self ):
14
14
tests = TestData (str (self .fspath ), "data" )
15
15
for i , test in enumerate (tests ):
16
- for treeName , treeAPIs in sorted (treeTypes .items ()):
17
- if treeAPIs is not None and "adapter" in treeAPIs :
18
- continue
19
- for namespaceHTMLElements in (True , False ):
20
- if namespaceHTMLElements :
21
- nodeid = "%d::%s::namespaced" % (i , treeName )
22
- else :
23
- nodeid = "%d::%s::void-namespace" % (i , treeName )
24
- item = ParserTest (nodeid ,
25
- self ,
26
- test ,
27
- treeAPIs ["builder" ] if treeAPIs is not None else None ,
28
- namespaceHTMLElements )
29
- item .add_marker (getattr (pytest .mark , treeName ))
30
- if namespaceHTMLElements :
31
- item .add_marker (pytest .mark .namespaced )
32
- if treeAPIs is None :
33
- item .add_marker (pytest .mark .skipif (True , reason = "Treebuilder not loaded" ))
34
- yield item
16
+ yield TreeConstructionTest (str (i ), self , testdata = test )
17
+
18
+
19
+ class TreeConstructionTest (pytest .Collector ):
20
+ def __init__ (self , name , parent = None , config = None , session = None , testdata = None ):
21
+ super (TreeConstructionTest , self ).__init__ (name , parent , config , session )
22
+ self .testdata = testdata
23
+
24
+ def collect (self ):
25
+ for treeName , treeAPIs in sorted (treeTypes .items ()):
26
+ for x in self ._getParserTests (treeName , treeAPIs ):
27
+ yield x
28
+
29
+ def _getParserTests (self , treeName , treeAPIs ):
30
+ if treeAPIs is not None and "adapter" in treeAPIs :
31
+ return
32
+ for namespaceHTMLElements in (True , False ):
33
+ if namespaceHTMLElements :
34
+ nodeid = "%s::namespaced" % treeName
35
+ else :
36
+ nodeid = "%s::void-namespace" % treeName
37
+ item = ParserTest (nodeid ,
38
+ self ,
39
+ self .testdata ,
40
+ treeAPIs ["builder" ] if treeAPIs is not None else None ,
41
+ namespaceHTMLElements )
42
+ item .add_marker (getattr (pytest .mark , treeName ))
43
+ if namespaceHTMLElements :
44
+ item .add_marker (pytest .mark .namespaced )
45
+ if treeAPIs is None :
46
+ item .add_marker (pytest .mark .skipif (True , reason = "Treebuilder not loaded" ))
47
+ yield item
35
48
36
49
37
50
def convertTreeDump (data ):
0 commit comments