2828
2929class TestSuiteBuilder (object ):
3030
31- def __init__ (self , include_suites = None , extension = None , rpa = None ):
31+ def __init__ (self , include_suites = None , extension = None , rpa = None ,
32+ allow_empty_suite = False ):
3233 self .rpa = rpa
3334 self .include_suites = include_suites
3435 self .extension = extension
36+ self .allow_empty_suite = allow_empty_suite
3537
3638 def build (self , * paths ):
3739 """
@@ -42,7 +44,10 @@ def build(self, *paths):
4244 self .extension ).build (paths )
4345 parser = SuiteStructureParser (self .rpa )
4446 suite = parser .parse (structure )
45- self ._validate_test_counts (suite , multisource = len (paths ) > 1 )
47+ if not self .include_suites and not self .allow_empty_suite :
48+ self ._validate_test_counts (suite , multisource = len (paths ) > 1 )
49+ # TODO: do we need `preserve_direct_children`?
50+ suite .remove_empty_suites (preserve_direct_children = len (paths ) > 1 )
4651 return suite
4752
4853 def _validate_test_counts (self , suite , multisource = False ):
@@ -55,8 +60,6 @@ def validate(suite):
5560 else :
5661 for s in suite .suites :
5762 validate (s )
58- # TODO: do we need `preserve_direct_children`?
59- suite .remove_empty_suites (preserve_direct_children = multisource )
6063
6164
6265class ResourceFileBuilder (object ):
0 commit comments