Fix: handle CollectReport in folded_skips function

This commit is contained in:
George Y. Kussumoto 2017-10-04 19:18:55 -03:00
parent 9824499396
commit 03ce0adb79
2 changed files with 10 additions and 4 deletions

View File

@ -349,7 +349,8 @@ def folded_skips(skipped):
# folding reports with global pytestmark variable # folding reports with global pytestmark variable
# this is workaround, because for now we cannot identify the scope of a skip marker # this is workaround, because for now we cannot identify the scope of a skip marker
# TODO: revisit after marks scope would be fixed # TODO: revisit after marks scope would be fixed
if event.when == 'setup' and 'skip' in keywords and 'pytestmark' not in keywords: when = getattr(event, 'when', None)
if when == 'setup' and 'skip' in keywords and 'pytestmark' not in keywords:
key = (key[0], None, key[2], ) key = (key[0], None, key[2], )
d.setdefault(key, []).append(event) d.setdefault(key, []).append(event)
l = [] l = []

View File

@ -663,7 +663,7 @@ def test_skipif_class(testdir):
def test_skip_reasons_folding(): def test_skip_reasons_folding():
path = 'xyz' path = "xyz"
lineno = 3 lineno = 3
message = "justso" message = "justso"
longrepr = (path, lineno, message) longrepr = (path, lineno, message)
@ -680,10 +680,15 @@ def test_skip_reasons_folding():
ev2.longrepr = longrepr ev2.longrepr = longrepr
ev2.skipped = True ev2.skipped = True
l = folded_skips([ev1, ev2]) # ev3 might be a collection report
ev3 = X()
ev3.longrepr = longrepr
ev3.skipped = True
l = folded_skips([ev1, ev2, ev3])
assert len(l) == 1 assert len(l) == 1
num, fspath, lineno, reason = l[0] num, fspath, lineno, reason = l[0]
assert num == 2 assert num == 3
assert fspath == path assert fspath == path
assert lineno == lineno assert lineno == lineno
assert reason == message assert reason == message