Skip to content

Commit 26cb156

Browse files
skhomutiGilBecker-Anaplan
authored andcommitted
call deselect hook when tests filtered (via allure-framework#628)
1 parent 6337297 commit 26cb156

File tree

1 file changed

+19
-5
lines changed

1 file changed

+19
-5
lines changed

allure-pytest/src/plugin.py

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,13 @@ def select_by_labels(items, config):
156156
config.option.allure_stories,
157157
config.option.allure_ids,
158158
config.option.allure_severities)
159-
return filter(lambda item: arg_labels & set(allure_labels(item)) if arg_labels else True, items)
159+
if arg_labels:
160+
selected, deselected = [], []
161+
for item in items:
162+
selected.append(item) if arg_labels & set(allure_labels(item)) else deselected.append(item)
163+
return selected, deselected
164+
else:
165+
return items, []
160166

161167

162168
def select_by_testcase(items):
@@ -177,11 +183,19 @@ def is_planed(item):
177183
return True
178184
return False
179185

180-
return [item for item in items if is_planed(item)]
186+
selected, deselected = [], []
187+
for item in items:
188+
selected.append(item) if is_planed(item) else deselected.append(item)
189+
return selected, deselected
181190
else:
182-
return items
191+
return items, []
183192

184193

185194
def pytest_collection_modifyitems(items, config):
186-
items[:] = select_by_testcase(items)
187-
items[:] = select_by_labels(items, config)
195+
selected, deselected_by_testcase = select_by_testcase(items)
196+
selected, deselected_by_labels = select_by_labels(selected, config)
197+
198+
items[:] = selected
199+
200+
if deselected_by_testcase or deselected_by_labels:
201+
config.hook.pytest_deselected(items=[*deselected_by_testcase, *deselected_by_labels])

0 commit comments

Comments
 (0)