Merge pull request #5120 from blueyed/minor
A collection of minor code tweaks
This commit is contained in:
commit
5530d3e15d
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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)
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
Loading…
Reference in New Issue