fix issue 179 - propperly show the dependency chain of factories on setup failure
This commit is contained in:
		
							parent
							
								
									503addbf09
								
							
						
					
					
						commit
						e876ad9abd
					
				|  | @ -35,6 +35,8 @@ Changes between 2.2.4 and 2.3.0.dev | |||
| 
 | ||||
| - fix issue128: show captured output when capsys/capfd are used | ||||
| 
 | ||||
| - fix issue179: propperly show the dependency chain of factories | ||||
| 
 | ||||
| - pluginmanager.register(...) now raises ValueError if the | ||||
|   plugin has been already registered or the name is taken | ||||
| 
 | ||||
|  |  | |||
|  | @ -1211,8 +1211,14 @@ class FuncargLookupErrorRepr(TerminalRepr): | |||
| 
 | ||||
|     def toterminal(self, tw): | ||||
|         tw.line() | ||||
|         for line in self.factblines or []: | ||||
|             tw.line(line) | ||||
|         if self.factblines: | ||||
|             tw.line('    dependency of:') | ||||
|             for factorydef in self.factblines: | ||||
|                 tw.line('        %s in %s' % ( | ||||
|                     factorydef.argname, | ||||
|                     factorydef.baseid, | ||||
|                 )) | ||||
|             tw.line() | ||||
|         for line in self.deflines: | ||||
|             tw.line("    " + line.strip()) | ||||
|         for line in self.errorstring.split("\n"): | ||||
|  |  | |||
|  | @ -1664,8 +1664,7 @@ class TestFuncargFactory: | |||
|             "*2 passed*" | ||||
|         ]) | ||||
| 
 | ||||
|     @pytest.mark.xfail(reason="factorydef passed to tw.line") | ||||
|     def test_factory_uses_unknown_funcarg_error(self, testdir): | ||||
|     def test_factory_uses_unknown_funcarg_as_dependency_error(self, testdir): | ||||
|         testdir.makepyfile(""" | ||||
|             import pytest | ||||
| 
 | ||||
|  | @ -1682,7 +1681,10 @@ class TestFuncargFactory: | |||
|             """) | ||||
|         result = testdir.runpytest() | ||||
|         result.stdout.fnmatch_lines([ | ||||
|             "*LookupError: no factory found for argument 'missing'" | ||||
|             "*dependency of:*", | ||||
|             "*call_fail*", | ||||
|             "*def fail(*", | ||||
|             "*LookupError: no factory found for argument 'missing'", | ||||
|         ]) | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue