1- from functools import partial
21from functools import wraps
32
43from allure_commons ._core import plugin_manager
@@ -24,10 +23,6 @@ def severity(severity_level):
2423 return label (LabelType .SEVERITY , severity_level )
2524
2625
27- def tag (* tags ):
28- return label (LabelType .TAG , * tags )
29-
30-
3126def feature (* features ):
3227 return label (LabelType .FEATURE , * features )
3328
@@ -36,6 +31,10 @@ def story(*stories):
3631 return label (LabelType .STORY , * stories )
3732
3833
34+ def tag (* tags ):
35+ return label (LabelType .TAG , * tags )
36+
37+
3938def link (url , link_type = LinkType .LINK , name = None ):
4039 return safely (plugin_manager .hook .decorate_as_link (url = url , link_type = link_type , name = name ))
4140
@@ -48,24 +47,39 @@ def testcase(url, name=None):
4847 return link (url , link_type = LinkType .TEST_CASE , name = name )
4948
5049
51- def add_label (label_type , labels ):
52- print ("Y" * 29 )
50+ class Dynamic (object ):
51+
52+ @staticmethod
53+ def label (label_type , * labels ):
54+ plugin_manager .hook .add_label (label_type = label_type , labels = labels )
5355
56+ @staticmethod
57+ def severity (severity_level ):
58+ Dynamic .label (LabelType .SEVERITY , severity_level )
5459
55- def add_link (url , link_type = LinkType .LINK , name = None ):
56- print ("X" * 23 )
60+ @staticmethod
61+ def feature (* features ):
62+ Dynamic .label (LabelType .FEATURE , * features )
5763
64+ @staticmethod
65+ def story (* stories ):
66+ Dynamic .label (LabelType .STORY , * stories )
5867
59- class Dynamic (object ):
60- label = partial (add_label )
61- severity = partial (add_label , LabelType .SEVERITY )
62- tag = partial (add_label , LabelType .TAG )
63- feature = partial (add_label , LabelType .FEATURE )
64- story = partial (add_label , LabelType .STORY )
65-
66- link = partial (add_link )
67- issue = partial (add_link , link_type = LinkType .ISSUE )
68- testcase = partial (add_link , link_type = LinkType .TEST_CASE )
68+ @staticmethod
69+ def tag (* tags ):
70+ Dynamic .label (LabelType .TAG , * tags )
71+
72+ @staticmethod
73+ def link (url , link_type = LinkType .LINK , name = None ):
74+ plugin_manager .hook .add_link (url = url , link_type = link_type , name = name )
75+
76+ @staticmethod
77+ def issue (url , name = None ):
78+ Dynamic .link (url , link_type = LinkType .TEST_CASE , name = name )
79+
80+ @staticmethod
81+ def testcase (url , name = None ):
82+ Dynamic .link (url , link_type = LinkType .TEST_CASE , name = name )
6983
7084
7185def step (title ):
0 commit comments