[Pytest-commit] commit/pytest: RonnyPfannschmidt: fix issue 251 - report a skip instead of ignoring classes with init

Bitbucket commits-noreply at bitbucket.org
Fri Feb 15 10:18:26 CET 2013


1 new commit in pytest:

https://bitbucket.org/hpk42/pytest/commits/18234e3726bf/
changeset:   18234e3726bf
user:        RonnyPfannschmidt
date:        2013-02-15 10:18:00
summary:     fix issue 251 - report a skip instead of ignoring classes with init
affected #:  3 files

diff -r 62984b8b62e8bfe8840fe1fe5c8751f04d1edce4 -r 18234e3726bf090183d0cf7cc76c58ac89c179fb CHANGELOG
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,5 +1,6 @@
 Changes between 2.3.4 and 2.3.5dev
 -----------------------------------
+- issue 251 - report a skip instead of ignoring classes with init
 
 - issue250 unicode/str mixes in parametrization names and values now works
 

diff -r 62984b8b62e8bfe8840fe1fe5c8751f04d1edce4 -r 18234e3726bf090183d0cf7cc76c58ac89c179fb _pytest/python.py
--- a/_pytest/python.py
+++ b/_pytest/python.py
@@ -175,9 +175,8 @@
         #if hasattr(collector.obj, 'unittest'):
         #    return # we assume it's a mixin class for a TestCase derived one
         if collector.classnamefilter(name):
-            if not hasinit(obj):
-                Class = collector._getcustomclass("Class")
-                return Class(name, parent=collector)
+            Class = collector._getcustomclass("Class")
+            return Class(name, parent=collector)
     elif collector.funcnamefilter(name) and hasattr(obj, '__call__'):
         if is_generator(obj):
             return Generator(name, parent=collector)
@@ -394,6 +393,11 @@
 class Class(PyCollector):
     """ Collector for test methods. """
     def collect(self):
+        if hasinit(self.obj):
+            pytest.skip("class %s.%s with __init__ won't get collected" % (
+                self.obj.__module__,
+                self.obj.__name__,
+            ))
         return [self._getcustomclass("Instance")(name="()", parent=self)]
 
     def setup(self):

diff -r 62984b8b62e8bfe8840fe1fe5c8751f04d1edce4 -r 18234e3726bf090183d0cf7cc76c58ac89c179fb testing/python/collect.py
--- a/testing/python/collect.py
+++ b/testing/python/collect.py
@@ -35,7 +35,7 @@
         pytest.raises(ImportError, "modcol.obj")
 
 class TestClass:
-    def test_class_with_init_not_collected(self, testdir):
+    def test_class_with_init_skip_collect(self, testdir):
         modcol = testdir.getmodulecol("""
             class TestClass1:
                 def __init__(self):
@@ -45,7 +45,10 @@
                     pass
         """)
         l = modcol.collect()
-        assert len(l) == 0
+        assert len(l) == 2
+
+        for classcol in l:
+            pytest.raises(pytest.skip.Exception, classcol.collect)
 
     def test_class_subclassobject(self, testdir):
         testdir.getmodulecol("""

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