[Pytest-commit] commit/pytest: 3 new changesets
commits-noreply at bitbucket.org
commits-noreply at bitbucket.org
Fri Aug 16 11:34:08 CEST 2013
3 new commits in pytest:
https://bitbucket.org/hpk42/pytest/commits/8cf687dda7b0/
Changeset: 8cf687dda7b0
User: antocuni
Date: 2013-03-14 16:10:33
Summary: correctly handle nose.SkipTest during collection
Affected #: 4 files
diff -r 1944bf94e4648184bddcb5bbbbe8c02bcecd2184 -r 8cf687dda7b0c121f14332244b44135bf0407752 _pytest/main.py
--- a/_pytest/main.py
+++ b/_pytest/main.py
@@ -347,6 +347,18 @@
""" Collector instances create children through collect()
and thus iteratively build a tree.
"""
+
+ _skip_exceptions = None
+ @property
+ def skip_exceptions(self):
+ if self._skip_exceptions is None:
+ return (py.test.skip.Exception,)
+ return self._skip_exceptions
+
+ @skip_exceptions.setter
+ def skip_exceptions(self, value):
+ self._skip_exceptions = value
+
class CollectError(Exception):
""" an error during collection, contains a custom message. """
diff -r 1944bf94e4648184bddcb5bbbbe8c02bcecd2184 -r 8cf687dda7b0c121f14332244b44135bf0407752 _pytest/nose.py
--- a/_pytest/nose.py
+++ b/_pytest/nose.py
@@ -38,6 +38,8 @@
# del item.parent._nosegensetup
def pytest_make_collect_report(collector):
+ SkipTest = py.std.unittest.SkipTest
+ collector.skip_exceptions += (SkipTest,)
if isinstance(collector, pytest.Generator):
call_optional(collector.obj, 'setup')
diff -r 1944bf94e4648184bddcb5bbbbe8c02bcecd2184 -r 8cf687dda7b0c121f14332244b44135bf0407752 _pytest/runner.py
--- a/_pytest/runner.py
+++ b/_pytest/runner.py
@@ -249,7 +249,7 @@
if not call.excinfo:
outcome = "passed"
else:
- if call.excinfo.errisinstance(py.test.skip.Exception):
+ if call.excinfo.errisinstance(collector.skip_exceptions):
outcome = "skipped"
r = collector._repr_failure_py(call.excinfo, "line").reprcrash
longrepr = (str(r.path), r.lineno, r.message)
diff -r 1944bf94e4648184bddcb5bbbbe8c02bcecd2184 -r 8cf687dda7b0c121f14332244b44135bf0407752 testing/test_nose.py
--- a/testing/test_nose.py
+++ b/testing/test_nose.py
@@ -305,3 +305,12 @@
result.stdout.fnmatch_lines("*1 passed*")
+def test_SkipTest_during_collection(testdir):
+ testdir.makepyfile("""
+ import nose
+ raise nose.SkipTest("during collection")
+ def test_failing():
+ assert False
+ """)
+ result = testdir.runpytest()
+ result.stdout.fnmatch_lines("*1 skipped*")
https://bitbucket.org/hpk42/pytest/commits/15d47614851b/
Changeset: 15d47614851b
User: antocuni
Date: 2013-03-14 16:53:57
Summary: (antocuni, ronny around): import directly from _pytest.runner to avoid the usage of @property
Affected #: 1 file
diff -r 8cf687dda7b0c121f14332244b44135bf0407752 -r 15d47614851bd72c4e7afc88f8fae5ae38d0fae9 _pytest/main.py
--- a/_pytest/main.py
+++ b/_pytest/main.py
@@ -10,6 +10,7 @@
from UserDict import DictMixin as MappingMixin
from _pytest.mark import MarkInfo
+import _pytest.runner
tracebackcutdir = py.path.local(_pytest.__file__).dirpath()
@@ -348,16 +349,9 @@
and thus iteratively build a tree.
"""
- _skip_exceptions = None
- @property
- def skip_exceptions(self):
- if self._skip_exceptions is None:
- return (py.test.skip.Exception,)
- return self._skip_exceptions
-
- @skip_exceptions.setter
- def skip_exceptions(self, value):
- self._skip_exceptions = value
+ # the set of exceptions to interpret as "Skip the whole module" during
+ # collection
+ skip_exceptions = (_pytest.runner.Skipped,)
class CollectError(Exception):
""" an error during collection, contains a custom message. """
https://bitbucket.org/hpk42/pytest/commits/2393d3dcacdf/
Changeset: 2393d3dcacdf
User: hpk42
Date: 2013-08-16 11:33:58
Summary: merge pull request #27: correctly handle nose.SkipTest during collection. Thanks
Antonio Cuni, Ronny Pfannschmidt. I did a few tweaks to the test and the
activation (depending on if unittest is imported at all).
Affected #: 6 files
diff -r 6020045d40a9f50cf62019657a7b58caf6c80435 -r 2393d3dcacdf411a855acaac836bae027d72a668 CHANGELOG
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,6 +1,9 @@
Changes between 2.3.5 and 2.4.DEV
-----------------------------------
+- PR27: correctly handle nose.SkipTest during collection. Thanks
+ Antonio Cuni, Ronny Pfannschmidt.
+
- new monkeypatch.replace() to avoid imports and provide a shorter
invocation for patching out classes/functions from modules:
diff -r 6020045d40a9f50cf62019657a7b58caf6c80435 -r 2393d3dcacdf411a855acaac836bae027d72a668 _pytest/main.py
--- a/_pytest/main.py
+++ b/_pytest/main.py
@@ -10,6 +10,7 @@
from UserDict import DictMixin as MappingMixin
from _pytest.mark import MarkInfo
+import _pytest.runner
tracebackcutdir = py.path.local(_pytest.__file__).dirpath()
@@ -368,6 +369,11 @@
""" Collector instances create children through collect()
and thus iteratively build a tree.
"""
+
+ # the set of exceptions to interpret as "Skip the whole module" during
+ # collection
+ skip_exceptions = (_pytest.runner.Skipped,)
+
class CollectError(Exception):
""" an error during collection, contains a custom message. """
diff -r 6020045d40a9f50cf62019657a7b58caf6c80435 -r 2393d3dcacdf411a855acaac836bae027d72a668 _pytest/nose.py
--- a/_pytest/nose.py
+++ b/_pytest/nose.py
@@ -40,6 +40,9 @@
# del item.parent._nosegensetup
def pytest_make_collect_report(collector):
+ if sys.modules.get("unittest"):
+ SkipTest = py.std.unittest.SkipTest
+ collector.skip_exceptions += (SkipTest,)
if isinstance(collector, pytest.Generator):
call_optional(collector.obj, 'setup')
diff -r 6020045d40a9f50cf62019657a7b58caf6c80435 -r 2393d3dcacdf411a855acaac836bae027d72a668 _pytest/pytester.py
--- a/_pytest/pytester.py
+++ b/_pytest/pytester.py
@@ -604,9 +604,10 @@
passed = []
skipped = []
failed = []
- for rep in self.getreports("pytest_runtest_logreport"):
+ for rep in self.getreports(
+ "pytest_collectreport pytest_runtest_logreport"):
if rep.passed:
- if rep.when == "call":
+ if getattr(rep, "when", None) == "call":
passed.append(rep)
elif rep.skipped:
skipped.append(rep)
diff -r 6020045d40a9f50cf62019657a7b58caf6c80435 -r 2393d3dcacdf411a855acaac836bae027d72a668 _pytest/runner.py
--- a/_pytest/runner.py
+++ b/_pytest/runner.py
@@ -258,7 +258,7 @@
if not call.excinfo:
outcome = "passed"
else:
- if call.excinfo.errisinstance(py.test.skip.Exception):
+ if call.excinfo.errisinstance(collector.skip_exceptions):
outcome = "skipped"
r = collector._repr_failure_py(call.excinfo, "line").reprcrash
longrepr = (str(r.path), r.lineno, r.message)
diff -r 6020045d40a9f50cf62019657a7b58caf6c80435 -r 2393d3dcacdf411a855acaac836bae027d72a668 testing/test_nose.py
--- a/testing/test_nose.py
+++ b/testing/test_nose.py
@@ -327,6 +327,15 @@
"""Undoes the setup."""
raise Exception("should not call teardown for skipped tests")
''')
+ reprec = testdir.inline_run()
+ reprec.assertoutcome(passed=1, skipped=1)
- result = testdir.runpytest()
- result.stdout.fnmatch_lines("*1 skipped*")
+def test_SkipTest_during_collection(testdir):
+ testdir.makepyfile("""
+ import nose
+ raise nose.SkipTest("during collection")
+ def test_failing():
+ assert False
+ """)
+ reprec = testdir.inline_run()
+ reprec.assertoutcome(skipped=1)
Repository URL: https://bitbucket.org/hpk42/pytest/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
More information about the pytest-commit
mailing list