Simplify default pytest_runtestloop
The inner function and the explanatory comment it makes necessary can all be removed if we switch to an if/else rather than try/except for this condition. Perhaps this bit comes from my fondness for C, but I think I would find this style clearer and easier to understand even if it weren't for the Python 2 quirk that makes the other style require us to add an unnecessary-looking function abstraction. In any case, given that the alternative does require that abstraction this is definitely simpler.
This commit is contained in:
parent
66e66f61e8
commit
ab8b2e75a3
1
AUTHORS
1
AUTHORS
|
@ -47,6 +47,7 @@ Floris Bruynooghe
|
||||||
Gabriel Reis
|
Gabriel Reis
|
||||||
Georgy Dyuldin
|
Georgy Dyuldin
|
||||||
Graham Horler
|
Graham Horler
|
||||||
|
Greg Price
|
||||||
Grig Gheorghiu
|
Grig Gheorghiu
|
||||||
Guido Wesdorp
|
Guido Wesdorp
|
||||||
Harald Armin Massa
|
Harald Armin Massa
|
||||||
|
|
|
@ -136,17 +136,8 @@ def pytest_runtestloop(session):
|
||||||
if session.config.option.collectonly:
|
if session.config.option.collectonly:
|
||||||
return True
|
return True
|
||||||
|
|
||||||
def getnextitem(i):
|
|
||||||
# this is a function to avoid python2
|
|
||||||
# keeping sys.exc_info set when calling into a test
|
|
||||||
# python2 keeps sys.exc_info till the frame is left
|
|
||||||
try:
|
|
||||||
return session.items[i+1]
|
|
||||||
except IndexError:
|
|
||||||
return None
|
|
||||||
|
|
||||||
for i, item in enumerate(session.items):
|
for i, item in enumerate(session.items):
|
||||||
nextitem = getnextitem(i)
|
nextitem = session.items[i+1] if i+1 < len(session.items) else None
|
||||||
item.config.hook.pytest_runtest_protocol(item=item, nextitem=nextitem)
|
item.config.hook.pytest_runtest_protocol(item=item, nextitem=nextitem)
|
||||||
if session.shouldstop:
|
if session.shouldstop:
|
||||||
raise session.Interrupted(session.shouldstop)
|
raise session.Interrupted(session.shouldstop)
|
||||||
|
|
Loading…
Reference in New Issue