1010from allure_commons .model2 import StatusDetails
1111from allure_commons .types import LabelType
1212
13- ALLURE_TITLE = 'allure_title '
14- ALLURE_DESCRIPTION = 'allure_description'
15- ALLURE_DESCRIPTION_HTML = 'allure_description_html'
16- ALLURE_LABEL_PREFIX = 'allure_label'
17- ALLURE_LINK_PREFIX = 'allure_link'
13+ ALLURE_DISPLAY_NAME_MARK = 'allure_display_name '
14+ ALLURE_DESCRIPTION_MARK = 'allure_description'
15+ ALLURE_DESCRIPTION_HTML_MARK = 'allure_description_html'
16+ ALLURE_LABEL_MARK = 'allure_label'
17+ ALLURE_LINK_MARK = 'allure_link'
1818ALLURE_UNIQUE_LABELS = [
1919 LabelType .SEVERITY ,
2020 LabelType .FRAMEWORK ,
@@ -31,41 +31,41 @@ def get_marker_value(item, keyword):
3131
3232
3333def allure_title (item ):
34- return get_marker_value (item , ALLURE_TITLE )
34+ return get_marker_value (item , ALLURE_DISPLAY_NAME_MARK )
3535
3636
3737def allure_description (item ):
38- description = get_marker_value (item , ALLURE_DESCRIPTION )
38+ description = get_marker_value (item , ALLURE_DESCRIPTION_MARK )
3939 if description :
4040 return description
4141 elif hasattr (item , 'function' ):
4242 return item .function .__doc__
4343
4444
4545def allure_description_html (item ):
46- return get_marker_value (item , ALLURE_DESCRIPTION_HTML )
46+ return get_marker_value (item , ALLURE_DESCRIPTION_HTML_MARK )
4747
4848
4949def allure_labels (item ):
50- for keyword in item .keywords .keys ():
51- if keyword .startswith (ALLURE_LABEL_PREFIX ):
52- marker = item .get_closest_marker (keyword )
53- label_type = marker .kwargs ['label_type' ]
54- if label_type in ALLURE_UNIQUE_LABELS :
55- yield (label_type , marker .args [0 ])
56- else :
57- for value in marker .args :
58- yield (label_type , value )
50+ unique_labels = dict ()
51+ labels = set ()
52+ for mark in item .iter_markers (name = ALLURE_LABEL_MARK ):
53+ label_type = mark .kwargs ["label_type" ]
54+ if label_type in ALLURE_UNIQUE_LABELS :
55+ if label_type not in unique_labels .keys ():
56+ unique_labels [label_type ] = mark .args [0 ]
57+ else :
58+ for arg in mark .args :
59+ labels .add ((label_type , arg ))
60+ for k , v in unique_labels .items ():
61+ labels .add ((k , v ))
62+
63+ return labels
5964
6065
6166def allure_links (item ):
62- for keyword in item .keywords .keys ():
63- if keyword .startswith (ALLURE_LINK_PREFIX ):
64- marker = item .get_closest_marker (keyword )
65- link_type = marker .kwargs ['link_type' ]
66- url = marker .args [0 ]
67- name = marker .kwargs ['name' ]
68- yield (link_type , url , name )
67+ for mark in item .iter_markers (name = ALLURE_LINK_MARK ):
68+ yield (mark .kwargs ["link_type" ], mark .args [0 ], mark .kwargs ["name" ])
6969
7070
7171def pytest_markers (item ):
0 commit comments