Skip to content

Commit

Permalink
Show deselection count before tests are exectued
Browse files Browse the repository at this point in the history
Fixes #1527
  • Loading branch information
twmr committed Feb 13, 2018
1 parent 063e2da commit 9af213c
Show file tree
Hide file tree
Showing 3 changed files with 31 additions and 7 deletions.
10 changes: 4 additions & 6 deletions _pytest/terminal.py
Original file line number Diff line number Diff line change
Expand Up @@ -361,13 +361,16 @@ def report_collect(self, final=False):

errors = len(self.stats.get('error', []))
skipped = len(self.stats.get('skipped', []))
deselected = len(self.stats.get('deselected', []))
if final:
line = "collected "
else:
line = "collecting "
line += str(self._numcollected) + " item" + ('' if self._numcollected == 1 else 's')
if errors:
line += " / %d errors" % errors
if deselected:
line += " / %d deselected" % deselected
if skipped:
line += " / %d skipped" % skipped
if self.isatty:
Expand All @@ -377,6 +380,7 @@ def report_collect(self, final=False):
else:
self.write_line(line)

@pytest.hookimpl(trylast=True)
def pytest_collection_modifyitems(self):
self.report_collect(True)

Expand Down Expand Up @@ -484,7 +488,6 @@ def pytest_sessionfinish(self, exitstatus):
if exitstatus == EXIT_INTERRUPTED:
self._report_keyboardinterrupt()
del self._keyboardinterrupt_memo
self.summary_deselected()
self.summary_stats()

def pytest_keyboard_interrupt(self, excinfo):
Expand Down Expand Up @@ -649,11 +652,6 @@ def summary_stats(self):
if self.verbosity == -1:
self.write_line(msg, **markup)

def summary_deselected(self):
if 'deselected' in self.stats:
self.write_sep("=", "%d tests deselected" % (
len(self.stats['deselected'])), bold=True)


def repr_pythonversion(v=None):
if v is None:
Expand Down
1 change: 1 addition & 0 deletions changelog/0000.feature
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Output item deselection count before tests are run.
27 changes: 26 additions & 1 deletion testing/test_terminal.py
Original file line number Diff line number Diff line change
Expand Up @@ -431,11 +431,36 @@ def test_three():
)
result = testdir.runpytest("-k", "test_two:", testpath)
result.stdout.fnmatch_lines([
"collected 3 items / 1 deselected",
"*test_deselected.py ..*",
"=* 1 test*deselected *=",
])
assert result.ret == 0

def test_show_deselected_items_using_markexpr_before_test_execution(
self, testdir):
testdir.makepyfile("""
import pytest
@pytest.mark.foo
def test_foobar():
pass
@pytest.mark.bar
def test_bar():
pass
def test_pass():
pass
""")
result = testdir.runpytest('-m', 'not foo')
result.stdout.fnmatch_lines([
"collected 3 items / 1 deselected",
"*test_show_des*.py ..*",
"*= 2 passed, 1 deselected in * =*",
])
assert "= 1 deselected =" not in result.stdout.str()
assert result.ret == 0

def test_no_skip_summary_if_failure(self, testdir):
testdir.makepyfile("""
import pytest
Expand Down

0 comments on commit 9af213c

Please sign in to comment.