@@ -13,25 +13,38 @@ class TreeConstructionFile(pytest.File):
1313 def collect (self ):
1414 tests = TestData (str (self .fspath ), "data" )
1515 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
3548
3649
3750def convertTreeDump (data ):
0 commit comments