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
|
|
|