@@ -179,45 +179,45 @@ def pytest_collectreport(self, report):
179179 self .lastfailed [report .nodeid ] = True
180180
181181 def pytest_collection_modifyitems (self , session , config , items ):
182- if self .active :
183- if self .lastfailed :
184- previously_failed = []
185- previously_passed = []
186- for item in items :
187- if item .nodeid in self .lastfailed :
188- previously_failed .append (item )
189- else :
190- previously_passed .append (item )
191- self ._previously_failed_count = len (previously_failed )
192-
193- if not previously_failed :
194- # Running a subset of all tests with recorded failures
195- # only outside of it.
196- self ._report_status = "%d known failures not in selected tests" % (
197- len (self .lastfailed ),
198- )
182+ if not self .active :
183+ return
184+
185+ if self .lastfailed :
186+ previously_failed = []
187+ previously_passed = []
188+ for item in items :
189+ if item .nodeid in self .lastfailed :
190+ previously_failed .append (item )
199191 else :
200- if self .config .getoption ("lf" ):
201- items [:] = previously_failed
202- config .hook .pytest_deselected (items = previously_passed )
203- else : # --failedfirst
204- items [:] = previously_failed + previously_passed
205-
206- noun = (
207- "failure" if self ._previously_failed_count == 1 else "failures"
208- )
209- suffix = " first" if self .config .getoption ("failedfirst" ) else ""
210- self ._report_status = "rerun previous {count} {noun}{suffix}" .format (
211- count = self ._previously_failed_count , suffix = suffix , noun = noun
212- )
192+ previously_passed .append (item )
193+ self ._previously_failed_count = len (previously_failed )
194+
195+ if not previously_failed :
196+ # Running a subset of all tests with recorded failures
197+ # only outside of it.
198+ self ._report_status = "%d known failures not in selected tests" % (
199+ len (self .lastfailed ),
200+ )
213201 else :
214- self ._report_status = "no previously failed tests, "
215- if self .config .getoption ("last_failed_no_failures" ) == "none" :
216- self ._report_status += "deselecting all items."
217- config .hook .pytest_deselected (items = items )
218- items [:] = []
219- else :
220- self ._report_status += "not deselecting items."
202+ if self .config .getoption ("lf" ):
203+ items [:] = previously_failed
204+ config .hook .pytest_deselected (items = previously_passed )
205+ else : # --failedfirst
206+ items [:] = previously_failed + previously_passed
207+
208+ noun = "failure" if self ._previously_failed_count == 1 else "failures"
209+ suffix = " first" if self .config .getoption ("failedfirst" ) else ""
210+ self ._report_status = "rerun previous {count} {noun}{suffix}" .format (
211+ count = self ._previously_failed_count , suffix = suffix , noun = noun
212+ )
213+ else :
214+ self ._report_status = "no previously failed tests, "
215+ if self .config .getoption ("last_failed_no_failures" ) == "none" :
216+ self ._report_status += "deselecting all items."
217+ config .hook .pytest_deselected (items = items )
218+ items [:] = []
219+ else :
220+ self ._report_status += "not deselecting items."
221221
222222 def pytest_sessionfinish (self , session ):
223223 config = self .config
0 commit comments