74 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Python
		
	
	
	
			
		
		
	
	
			74 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Python
		
	
	
	
| import py
 | |
| mypath = py.path.local(__file__).new(ext=".py")
 | |
| 
 | |
| def test_forwarding_to_warnings_module():
 | |
|     py.test.deprecated_call(py.log._apiwarn, "1.3", "..")
 | |
| 
 | |
| def test_apiwarn_functional():
 | |
|     capture = py.io.StdCapture()
 | |
|     py.log._apiwarn("x.y.z", "something", stacklevel=1)
 | |
|     out, err = capture.reset()
 | |
|     py.builtin.print_("out", out)
 | |
|     py.builtin.print_("err", err)
 | |
|     assert err.find("x.y.z") != -1
 | |
|     lno = py.code.getrawcode(test_apiwarn_functional).co_firstlineno + 2
 | |
|     exp = "%s:%s" % (mypath, lno)
 | |
|     assert err.find(exp) != -1
 | |
| 
 | |
| def test_stacklevel():
 | |
|     def f():
 | |
|         py.log._apiwarn("x", "some", stacklevel=2)
 | |
|     # 3
 | |
|     # 4
 | |
|     capture = py.io.StdCapture()
 | |
|     f()
 | |
|     out, err = capture.reset()
 | |
|     lno = py.code.getrawcode(test_stacklevel).co_firstlineno + 6
 | |
|     warning = str(err)
 | |
|     assert warning.find(":%s" % lno) != -1
 | |
| 
 | |
| def test_stacklevel_initpkg_with_resolve(testdir):
 | |
|     testdir.makepyfile(modabc="""
 | |
|         import py
 | |
|         def f():
 | |
|             py.log._apiwarn("x", "some", stacklevel="apipkg123")
 | |
|     """)
 | |
|     testdir.makepyfile(apipkg123="""
 | |
|         def __getattr__():
 | |
|             import modabc
 | |
|             modabc.f()
 | |
|     """)
 | |
|     p = testdir.makepyfile("""
 | |
|         import apipkg123
 | |
|         apipkg123.__getattr__()
 | |
|     """)
 | |
|     capture = py.io.StdCapture()
 | |
|     p.pyimport()
 | |
|     out, err = capture.reset()
 | |
|     warning = str(err)
 | |
|     loc = 'test_stacklevel_initpkg_with_resolve.py:2'
 | |
|     assert warning.find(loc) != -1
 | |
| 
 | |
| def test_stacklevel_initpkg_no_resolve():
 | |
|     def f():
 | |
|         py.log._apiwarn("x", "some", stacklevel="apipkg")
 | |
|     capture = py.io.StdCapture()
 | |
|     f()
 | |
|     out, err = capture.reset()
 | |
|     lno = py.code.getrawcode(test_stacklevel_initpkg_no_resolve).co_firstlineno + 2
 | |
|     warning = str(err)
 | |
|     assert warning.find(":%s" % lno) != -1
 | |
| 
 | |
| 
 | |
| def test_function():
 | |
|     capture = py.io.StdCapture()
 | |
|     py.log._apiwarn("x.y.z", "something", function=test_function)
 | |
|     out, err = capture.reset()
 | |
|     py.builtin.print_("out", out)
 | |
|     py.builtin.print_("err", err)
 | |
|     assert err.find("x.y.z") != -1
 | |
|     lno = py.code.getrawcode(test_function).co_firstlineno 
 | |
|     exp = "%s:%s" % (mypath, lno)
 | |
|     assert err.find(exp) != -1
 | |
| 
 |