@@ -24,6 +24,9 @@ def __init__(self, suite, test_defaults):
24
24
def visit_DocumentationSetting (self , node ):
25
25
self .suite .doc = "\n " .join (node .value )
26
26
27
+ def visit_MetadataSetting (self , node ):
28
+ self .suite .metadata [node .name ] = ' ' .join (node .value )
29
+
27
30
def visit_SuiteSetupSetting (self , node ):
28
31
self .suite .keywords .append (create_fixture (node .value , 'setup' ))
29
32
@@ -275,18 +278,19 @@ def _parse_and_build(self, path):
275
278
if os .path .isdir (path ):
276
279
init_file , children = self ._get_children (path )
277
280
if init_file :
278
- suite = self ._build_suite (self . _parse ( init_file ) )
281
+ suite = self ._build_suite (init_file )
279
282
else :
280
- suite = TestSuite ()
283
+ suite = TestSuite (name = format_name ( path ), source = path )
281
284
for c in children :
282
285
suite .suites .append (self ._parse_and_build (c ))
283
286
else :
284
- suite = self ._build_suite (self . _parse ( path ) )
287
+ suite = self ._build_suite (path )
285
288
suite .remove_empty_suites ()
286
289
return suite
287
290
288
- def _build_suite (self , data , parent_defaults = None ):
289
- suite = TestSuite ()
291
+ def _build_suite (self , source , parent_defaults = None ):
292
+ data = self ._parse (source )
293
+ suite = TestSuite (name = format_name (source ), source = source )
290
294
defaults = TestDefaults ()
291
295
SettingsBuilder (suite , defaults ).visit (data )
292
296
SuiteBuilder (suite , defaults ).visit (data )
@@ -381,3 +385,16 @@ def build(self, path):
381
385
data = Builder ().read (abspath (path ))
382
386
ResourceBuilder (resource ).visit (data )
383
387
return resource
388
+
389
+
390
+ def format_name (source ):
391
+ def strip_possible_prefix_from_name (name ):
392
+ return name .split ('__' , 1 )[- 1 ]
393
+
394
+ def format_name (name ):
395
+ name = strip_possible_prefix_from_name (name )
396
+ name = name .replace ('_' , ' ' ).strip ()
397
+ return name .title () if name .islower () else name
398
+
399
+ basename = os .path .splitext (os .path .basename (source ))[0 ]
400
+ return format_name (basename )
0 commit comments