Merge pull request #5120 from blueyed/minor

A collection of minor code tweaks
This commit is contained in:
Daniel Hahler 2019-04-15 16:32:20 +02:00 committed by GitHub
commit 5530d3e15d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 39 additions and 40 deletions

View File

@ -179,45 +179,45 @@ class LFPlugin(object):
self.lastfailed[report.nodeid] = True self.lastfailed[report.nodeid] = True
def pytest_collection_modifyitems(self, session, config, items): def pytest_collection_modifyitems(self, session, config, items):
if self.active: if not self.active:
if self.lastfailed: return
previously_failed = []
previously_passed = []
for item in items:
if item.nodeid in self.lastfailed:
previously_failed.append(item)
else:
previously_passed.append(item)
self._previously_failed_count = len(previously_failed)
if not previously_failed: if self.lastfailed:
# Running a subset of all tests with recorded failures previously_failed = []
# only outside of it. previously_passed = []
self._report_status = "%d known failures not in selected tests" % ( for item in items:
len(self.lastfailed), if item.nodeid in self.lastfailed:
) previously_failed.append(item)
else: else:
if self.config.getoption("lf"): previously_passed.append(item)
items[:] = previously_failed self._previously_failed_count = len(previously_failed)
config.hook.pytest_deselected(items=previously_passed)
else: # --failedfirst
items[:] = previously_failed + previously_passed
noun = ( if not previously_failed:
"failure" if self._previously_failed_count == 1 else "failures" # Running a subset of all tests with recorded failures
) # only outside of it.
suffix = " first" if self.config.getoption("failedfirst") else "" self._report_status = "%d known failures not in selected tests" % (
self._report_status = "rerun previous {count} {noun}{suffix}".format( len(self.lastfailed),
count=self._previously_failed_count, suffix=suffix, noun=noun )
)
else: else:
self._report_status = "no previously failed tests, " if self.config.getoption("lf"):
if self.config.getoption("last_failed_no_failures") == "none": items[:] = previously_failed
self._report_status += "deselecting all items." config.hook.pytest_deselected(items=previously_passed)
config.hook.pytest_deselected(items=items) else: # --failedfirst
items[:] = [] items[:] = previously_failed + previously_passed
else:
self._report_status += "not deselecting items." noun = "failure" if self._previously_failed_count == 1 else "failures"
suffix = " first" if self.config.getoption("failedfirst") else ""
self._report_status = "rerun previous {count} {noun}{suffix}".format(
count=self._previously_failed_count, suffix=suffix, noun=noun
)
else:
self._report_status = "no previously failed tests, "
if self.config.getoption("last_failed_no_failures") == "none":
self._report_status += "deselecting all items."
config.hook.pytest_deselected(items=items)
items[:] = []
else:
self._report_status += "not deselecting items."
def pytest_sessionfinish(self, session): def pytest_sessionfinish(self, session):
config = self.config config = self.config

View File

@ -282,7 +282,6 @@ class PytestPluginManager(PluginManager):
known_marks = {m.name for m in getattr(method, "pytestmark", [])} known_marks = {m.name for m in getattr(method, "pytestmark", [])}
for name in ("tryfirst", "trylast", "optionalhook", "hookwrapper"): for name in ("tryfirst", "trylast", "optionalhook", "hookwrapper"):
opts.setdefault(name, hasattr(method, name) or name in known_marks) opts.setdefault(name, hasattr(method, name) or name in known_marks)
return opts return opts

View File

@ -227,7 +227,7 @@ def pytest_collectreport(report):
def pytest_deselected(items): def pytest_deselected(items):
""" called for test items deselected by keyword. """ """ called for test items deselected, e.g. by keyword. """
@hookspec(firstresult=True) @hookspec(firstresult=True)

View File

@ -304,7 +304,7 @@ class MarkGenerator(object):
for line in self._config.getini("markers"): for line in self._config.getini("markers"):
# example lines: "skipif(condition): skip the given test if..." # example lines: "skipif(condition): skip the given test if..."
# or "hypothesis: tests which use Hypothesis", so to get the # or "hypothesis: tests which use Hypothesis", so to get the
# marker name we we split on both `:` and `(`. # marker name we split on both `:` and `(`.
marker = line.split(":")[0].split("(")[0].strip() marker = line.split(":")[0].split("(")[0].strip()
self._markers.add(marker) self._markers.add(marker)

View File

@ -453,10 +453,10 @@ class TerminalReporter(object):
progress_length = len(" [100%]") progress_length = len(" [100%]")
self._progress_nodeids_reported.add(nodeid) self._progress_nodeids_reported.add(nodeid)
last_item = ( is_last_item = (
len(self._progress_nodeids_reported) == self._session.testscollected len(self._progress_nodeids_reported) == self._session.testscollected
) )
if last_item: if is_last_item:
self._write_progress_information_filling_space() self._write_progress_information_filling_space()
else: else:
w = self._width_of_current_line w = self._width_of_current_line