Merge pull request #5346 from nicoddemus/improve-collect-warn-message
Show test module in the PytestCollectionWarning message
This commit is contained in:
		
						commit
						654d8da9f7
					
				|  | @ -0,0 +1,2 @@ | |||
| Show the test module being collected when emitting ``PytestCollectionWarning`` messages for | ||||
| test classes with ``__init__`` and ``__new__`` methods to make it easier to pin down the problem. | ||||
|  | @ -720,7 +720,8 @@ class Class(PyCollector): | |||
|             self.warn( | ||||
|                 PytestCollectionWarning( | ||||
|                     "cannot collect test class %r because it has a " | ||||
|                     "__init__ constructor" % self.obj.__name__ | ||||
|                     "__init__ constructor (from: %s)" | ||||
|                     % (self.obj.__name__, self.parent.nodeid) | ||||
|                 ) | ||||
|             ) | ||||
|             return [] | ||||
|  | @ -728,7 +729,8 @@ class Class(PyCollector): | |||
|             self.warn( | ||||
|                 PytestCollectionWarning( | ||||
|                     "cannot collect test class %r because it has a " | ||||
|                     "__new__ constructor" % self.obj.__name__ | ||||
|                     "__new__ constructor (from: %s)" | ||||
|                     % (self.obj.__name__, self.parent.nodeid) | ||||
|                 ) | ||||
|             ) | ||||
|             return [] | ||||
|  |  | |||
|  | @ -146,7 +146,24 @@ class TestClass(object): | |||
|         result = testdir.runpytest("-rw") | ||||
|         result.stdout.fnmatch_lines( | ||||
|             [ | ||||
|                 "*cannot collect test class 'TestClass1' because it has a __init__ constructor" | ||||
|                 "*cannot collect test class 'TestClass1' because it has " | ||||
|                 "a __init__ constructor (from: test_class_with_init_warning.py)" | ||||
|             ] | ||||
|         ) | ||||
| 
 | ||||
|     def test_class_with_new_warning(self, testdir): | ||||
|         testdir.makepyfile( | ||||
|             """ | ||||
|             class TestClass1(object): | ||||
|                 def __new__(self): | ||||
|                     pass | ||||
|         """ | ||||
|         ) | ||||
|         result = testdir.runpytest("-rw") | ||||
|         result.stdout.fnmatch_lines( | ||||
|             [ | ||||
|                 "*cannot collect test class 'TestClass1' because it has " | ||||
|                 "a __new__ constructor (from: test_class_with_new_warning.py)" | ||||
|             ] | ||||
|         ) | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue