Merge pull request #3068 from asottile/pystd
Replace py.std with stdlib imports
This commit is contained in:
commit
cf9b31bd5a
|
@ -1,5 +1,7 @@
|
|||
from __future__ import absolute_import, division, print_function
|
||||
import inspect
|
||||
import sys
|
||||
import traceback
|
||||
from inspect import CO_VARARGS, CO_VARKEYWORDS
|
||||
import re
|
||||
from weakref import ref
|
||||
|
@ -422,7 +424,7 @@ class ExceptionInfo(object):
|
|||
"""
|
||||
if style == 'native':
|
||||
return ReprExceptionInfo(ReprTracebackNative(
|
||||
py.std.traceback.format_exception(
|
||||
traceback.format_exception(
|
||||
self.type,
|
||||
self.value,
|
||||
self.traceback[0]._rawentry,
|
||||
|
@ -556,7 +558,7 @@ class FormattedExcinfo(object):
|
|||
# else:
|
||||
# self._line("%-10s =\\" % (name,))
|
||||
# # XXX
|
||||
# py.std.pprint.pprint(value, stream=self.excinfowriter)
|
||||
# pprint.pprint(value, stream=self.excinfowriter)
|
||||
return ReprLocals(lines)
|
||||
|
||||
def repr_traceback_entry(self, entry, excinfo=None):
|
||||
|
@ -669,7 +671,7 @@ class FormattedExcinfo(object):
|
|||
else:
|
||||
# fallback to native repr if the exception doesn't have a traceback:
|
||||
# ExceptionInfo objects require a full traceback to work
|
||||
reprtraceback = ReprTracebackNative(py.std.traceback.format_exception(type(e), e, None))
|
||||
reprtraceback = ReprTracebackNative(traceback.format_exception(type(e), e, None))
|
||||
reprcrash = None
|
||||
|
||||
repr_chain += [(reprtraceback, reprcrash, descr)]
|
||||
|
@ -886,7 +888,7 @@ def getrawcode(obj, trycall=True):
|
|||
obj = getattr(obj, 'f_code', obj)
|
||||
obj = getattr(obj, '__code__', obj)
|
||||
if trycall and not hasattr(obj, 'co_firstlineno'):
|
||||
if hasattr(obj, '__call__') and not py.std.inspect.isclass(obj):
|
||||
if hasattr(obj, '__call__') and not inspect.isclass(obj):
|
||||
x = getrawcode(obj.__call__, trycall=False)
|
||||
if hasattr(x, 'co_firstlineno'):
|
||||
return x
|
||||
|
|
|
@ -3,6 +3,7 @@ from __future__ import absolute_import, division, generators, print_function
|
|||
import ast
|
||||
from ast import PyCF_ONLY_AST as _AST_FLAG
|
||||
from bisect import bisect_right
|
||||
import linecache
|
||||
import sys
|
||||
import six
|
||||
import inspect
|
||||
|
@ -191,7 +192,7 @@ class Source(object):
|
|||
if flag & _AST_FLAG:
|
||||
return co
|
||||
lines = [(x + "\n") for x in self.lines]
|
||||
py.std.linecache.cache[filename] = (1, None, lines, filename)
|
||||
linecache.cache[filename] = (1, None, lines, filename)
|
||||
return co
|
||||
|
||||
#
|
||||
|
@ -223,8 +224,7 @@ def getfslineno(obj):
|
|||
code = _pytest._code.Code(obj)
|
||||
except TypeError:
|
||||
try:
|
||||
fn = (py.std.inspect.getsourcefile(obj) or
|
||||
py.std.inspect.getfile(obj))
|
||||
fn = inspect.getsourcefile(obj) or inspect.getfile(obj)
|
||||
except TypeError:
|
||||
return "", -1
|
||||
|
||||
|
@ -248,7 +248,7 @@ def getfslineno(obj):
|
|||
|
||||
def findsource(obj):
|
||||
try:
|
||||
sourcelines, lineno = py.std.inspect.findsource(obj)
|
||||
sourcelines, lineno = inspect.findsource(obj)
|
||||
except py.builtin._sysex:
|
||||
raise
|
||||
except: # noqa
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
Replace py.std with stdlib imports.
|
|
@ -159,10 +159,10 @@ class TestRaises(object):
|
|||
def test_dynamic_compile_shows_nicely():
|
||||
src = 'def foo():\n assert 1 == 0\n'
|
||||
name = 'abc-123'
|
||||
module = py.std.imp.new_module(name)
|
||||
module = imp.new_module(name)
|
||||
code = _pytest._code.compile(src, name, 'exec')
|
||||
py.builtin.exec_(code, module.__dict__)
|
||||
py.std.sys.modules[name] = module
|
||||
sys.modules[name] = module
|
||||
module.foo()
|
||||
|
||||
|
||||
|
|
|
@ -413,10 +413,10 @@ get on the terminal - we are working on that)::
|
|||
def test_dynamic_compile_shows_nicely():
|
||||
src = 'def foo():\n assert 1 == 0\n'
|
||||
name = 'abc-123'
|
||||
module = py.std.imp.new_module(name)
|
||||
module = imp.new_module(name)
|
||||
code = _pytest._code.compile(src, name, 'exec')
|
||||
py.builtin.exec_(code, module.__dict__)
|
||||
py.std.sys.modules[name] = module
|
||||
sys.modules[name] = module
|
||||
> module.foo()
|
||||
|
||||
failure_demo.py:166:
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
import json
|
||||
import py
|
||||
import textwrap
|
||||
|
||||
issues_url = "https://api.github.com/repos/pytest-dev/pytest/issues"
|
||||
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
from __future__ import absolute_import, division, print_function
|
||||
import os
|
||||
import sys
|
||||
import types
|
||||
|
||||
import six
|
||||
|
||||
|
@ -398,7 +399,7 @@ class TestGeneralUsage(object):
|
|||
|
||||
p = tmpdir.join('test_test_plugins_given_as_strings.py')
|
||||
p.write('def test_foo(): pass')
|
||||
mod = py.std.types.ModuleType("myplugin")
|
||||
mod = types.ModuleType("myplugin")
|
||||
monkeypatch.setitem(sys.modules, 'myplugin', mod)
|
||||
assert pytest.main(args=[str(tmpdir)], plugins=['myplugin']) == 0
|
||||
|
||||
|
@ -492,17 +493,17 @@ class TestInvocationVariants(object):
|
|||
|
||||
def test_python_minus_m_invocation_ok(self, testdir):
|
||||
p1 = testdir.makepyfile("def test_hello(): pass")
|
||||
res = testdir.run(py.std.sys.executable, "-m", "pytest", str(p1))
|
||||
res = testdir.run(sys.executable, "-m", "pytest", str(p1))
|
||||
assert res.ret == 0
|
||||
|
||||
def test_python_minus_m_invocation_fail(self, testdir):
|
||||
p1 = testdir.makepyfile("def test_fail(): 0/0")
|
||||
res = testdir.run(py.std.sys.executable, "-m", "pytest", str(p1))
|
||||
res = testdir.run(sys.executable, "-m", "pytest", str(p1))
|
||||
assert res.ret == 1
|
||||
|
||||
def test_python_pytest_package(self, testdir):
|
||||
p1 = testdir.makepyfile("def test_pass(): pass")
|
||||
res = testdir.run(py.std.sys.executable, "-m", "pytest", str(p1))
|
||||
res = testdir.run(sys.executable, "-m", "pytest", str(p1))
|
||||
assert res.ret == 0
|
||||
res.stdout.fnmatch_lines(["*1 passed*"])
|
||||
|
||||
|
@ -560,7 +561,7 @@ class TestInvocationVariants(object):
|
|||
])
|
||||
|
||||
def join_pythonpath(what):
|
||||
cur = py.std.os.environ.get('PYTHONPATH')
|
||||
cur = os.environ.get('PYTHONPATH')
|
||||
if cur:
|
||||
return str(what) + os.pathsep + cur
|
||||
return what
|
||||
|
@ -618,7 +619,7 @@ class TestInvocationVariants(object):
|
|||
# └── test_world.py
|
||||
|
||||
def join_pythonpath(*dirs):
|
||||
cur = py.std.os.environ.get('PYTHONPATH')
|
||||
cur = os.environ.get('PYTHONPATH')
|
||||
if cur:
|
||||
dirs += (cur,)
|
||||
return os.pathsep.join(str(p) for p in dirs)
|
||||
|
|
|
@ -2,6 +2,8 @@
|
|||
from __future__ import absolute_import, division, print_function
|
||||
|
||||
import operator
|
||||
import os
|
||||
import sys
|
||||
import _pytest
|
||||
import py
|
||||
import pytest
|
||||
|
@ -472,7 +474,7 @@ class TestFormattedExcinfo(object):
|
|||
excinfo = _pytest._code.ExceptionInfo()
|
||||
repr = pr.repr_excinfo(excinfo)
|
||||
assert repr.reprtraceback.reprentries[1].lines[0] == "> ???"
|
||||
if py.std.sys.version_info[0] >= 3:
|
||||
if sys.version_info[0] >= 3:
|
||||
assert repr.chain[0][0].reprentries[1].lines[0] == "> ???"
|
||||
|
||||
def test_repr_many_line_source_not_existing(self):
|
||||
|
@ -487,7 +489,7 @@ raise ValueError()
|
|||
excinfo = _pytest._code.ExceptionInfo()
|
||||
repr = pr.repr_excinfo(excinfo)
|
||||
assert repr.reprtraceback.reprentries[1].lines[0] == "> ???"
|
||||
if py.std.sys.version_info[0] >= 3:
|
||||
if sys.version_info[0] >= 3:
|
||||
assert repr.chain[0][0].reprentries[1].lines[0] == "> ???"
|
||||
|
||||
def test_repr_source_failing_fullsource(self):
|
||||
|
@ -545,13 +547,13 @@ raise ValueError()
|
|||
fail = IOError()
|
||||
repr = pr.repr_excinfo(excinfo)
|
||||
assert repr.reprtraceback.reprentries[0].lines[0] == "> ???"
|
||||
if py.std.sys.version_info[0] >= 3:
|
||||
if sys.version_info[0] >= 3:
|
||||
assert repr.chain[0][0].reprentries[0].lines[0] == "> ???"
|
||||
|
||||
fail = py.error.ENOENT # noqa
|
||||
repr = pr.repr_excinfo(excinfo)
|
||||
assert repr.reprtraceback.reprentries[0].lines[0] == "> ???"
|
||||
if py.std.sys.version_info[0] >= 3:
|
||||
if sys.version_info[0] >= 3:
|
||||
assert repr.chain[0][0].reprentries[0].lines[0] == "> ???"
|
||||
|
||||
def test_repr_local(self):
|
||||
|
@ -738,7 +740,7 @@ raise ValueError()
|
|||
repr = p.repr_excinfo(excinfo)
|
||||
assert repr.reprtraceback
|
||||
assert len(repr.reprtraceback.reprentries) == len(reprtb.reprentries)
|
||||
if py.std.sys.version_info[0] >= 3:
|
||||
if sys.version_info[0] >= 3:
|
||||
assert repr.chain[0][0]
|
||||
assert len(repr.chain[0][0].reprentries) == len(reprtb.reprentries)
|
||||
assert repr.reprcrash.path.endswith("mod.py")
|
||||
|
@ -758,7 +760,7 @@ raise ValueError()
|
|||
def raiseos():
|
||||
raise OSError(2)
|
||||
|
||||
monkeypatch.setattr(py.std.os, 'getcwd', raiseos)
|
||||
monkeypatch.setattr(os, 'getcwd', raiseos)
|
||||
assert p._makepath(__file__) == __file__
|
||||
p.repr_traceback(excinfo)
|
||||
|
||||
|
@ -816,10 +818,10 @@ raise ValueError()
|
|||
for style in ("short", "long", "no"):
|
||||
for showlocals in (True, False):
|
||||
repr = excinfo.getrepr(style=style, showlocals=showlocals)
|
||||
if py.std.sys.version_info[0] < 3:
|
||||
if sys.version_info[0] < 3:
|
||||
assert isinstance(repr, ReprExceptionInfo)
|
||||
assert repr.reprtraceback.style == style
|
||||
if py.std.sys.version_info[0] >= 3:
|
||||
if sys.version_info[0] >= 3:
|
||||
assert isinstance(repr, ExceptionChainRepr)
|
||||
for repr in repr.chain:
|
||||
assert repr[0].style == style
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
# disable flake check on this file because some constructs are strange
|
||||
# or redundant on purpose and can't be disable on a line-by-line basis
|
||||
from __future__ import absolute_import, division, print_function
|
||||
import inspect
|
||||
import sys
|
||||
|
||||
import _pytest._code
|
||||
|
@ -187,9 +188,9 @@ class TestSourceParsingAndCompiling(object):
|
|||
def f():
|
||||
raise ValueError()
|
||||
""")
|
||||
source1 = py.std.inspect.getsource(co1)
|
||||
source1 = inspect.getsource(co1)
|
||||
assert 'KeyError' in source1
|
||||
source2 = py.std.inspect.getsource(co2)
|
||||
source2 = inspect.getsource(co2)
|
||||
assert 'ValueError' in source2
|
||||
|
||||
def test_getstatement(self):
|
||||
|
@ -373,7 +374,6 @@ def test_deindent():
|
|||
c = '''while True:
|
||||
pass
|
||||
'''
|
||||
import inspect
|
||||
lines = deindent(inspect.getsource(f).splitlines())
|
||||
assert lines == ["def f():", " c = '''while True:", " pass", "'''"]
|
||||
|
||||
|
@ -461,7 +461,7 @@ def test_getfslineno():
|
|||
|
||||
fspath, lineno = getfslineno(A)
|
||||
|
||||
_, A_lineno = py.std.inspect.findsource(A)
|
||||
_, A_lineno = inspect.findsource(A)
|
||||
assert fspath.basename == "test_source.py"
|
||||
assert lineno == A_lineno
|
||||
|
||||
|
|
|
@ -4,7 +4,6 @@ import sys
|
|||
from textwrap import dedent
|
||||
|
||||
import _pytest._code
|
||||
import py
|
||||
import pytest
|
||||
from _pytest.main import (
|
||||
Collector,
|
||||
|
@ -25,7 +24,7 @@ class TestModule(object):
|
|||
b = testdir.mkdir("b")
|
||||
p = a.ensure("test_whatever.py")
|
||||
p.pyimport()
|
||||
del py.std.sys.modules['test_whatever']
|
||||
del sys.modules['test_whatever']
|
||||
b.ensure("test_whatever.py")
|
||||
result = testdir.runpytest()
|
||||
result.stdout.fnmatch_lines([
|
||||
|
@ -754,7 +753,7 @@ class TestSorting(object):
|
|||
|
||||
assert fn1 == fn2
|
||||
assert fn1 != modcol
|
||||
if py.std.sys.version_info < (3, 0):
|
||||
if sys.version_info < (3, 0):
|
||||
assert cmp(fn1, fn2) == 0
|
||||
assert hash(fn1) == hash(fn2)
|
||||
|
||||
|
|
|
@ -730,7 +730,7 @@ class TestMetafuncFunctional(object):
|
|||
def test_attributes(self, testdir):
|
||||
p = testdir.makepyfile("""
|
||||
# assumes that generate/provide runs in the same process
|
||||
import py, pytest
|
||||
import sys, pytest
|
||||
def pytest_generate_tests(metafunc):
|
||||
metafunc.addcall(param=metafunc)
|
||||
|
||||
|
@ -749,7 +749,7 @@ class TestMetafuncFunctional(object):
|
|||
def test_method(self, metafunc, pytestconfig):
|
||||
assert metafunc.config == pytestconfig
|
||||
assert metafunc.module.__name__ == __name__
|
||||
if py.std.sys.version_info > (3, 0):
|
||||
if sys.version_info > (3, 0):
|
||||
unbound = TestClass.test_method
|
||||
else:
|
||||
unbound = TestClass.test_method.im_func
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
from __future__ import absolute_import, division, print_function
|
||||
import py
|
||||
import subprocess
|
||||
import sys
|
||||
import pytest
|
||||
|
||||
# test for _argcomplete but not specific for any application
|
||||
|
@ -23,21 +24,21 @@ def equal_with_bash(prefix, ffc, fc, out=None):
|
|||
|
||||
def _wrapcall(*args, **kargs):
|
||||
try:
|
||||
if py.std.sys.version_info > (2, 7):
|
||||
return py.std.subprocess.check_output(*args, **kargs).decode().splitlines()
|
||||
if sys.version_info > (2, 7):
|
||||
return subprocess.check_output(*args, **kargs).decode().splitlines()
|
||||
if 'stdout' in kargs:
|
||||
raise ValueError('stdout argument not allowed, it will be overridden.')
|
||||
process = py.std.subprocess.Popen(
|
||||
stdout=py.std.subprocess.PIPE, *args, **kargs)
|
||||
process = subprocess.Popen(
|
||||
stdout=subprocess.PIPE, *args, **kargs)
|
||||
output, unused_err = process.communicate()
|
||||
retcode = process.poll()
|
||||
if retcode:
|
||||
cmd = kargs.get("args")
|
||||
if cmd is None:
|
||||
cmd = args[0]
|
||||
raise py.std.subprocess.CalledProcessError(retcode, cmd)
|
||||
raise subprocess.CalledProcessError(retcode, cmd)
|
||||
return output.decode().splitlines()
|
||||
except py.std.subprocess.CalledProcessError:
|
||||
except subprocess.CalledProcessError:
|
||||
return []
|
||||
|
||||
|
||||
|
@ -83,7 +84,7 @@ class TestArgComplete(object):
|
|||
ffc = FastFilesCompleter()
|
||||
fc = FilesCompleter()
|
||||
for x in ['/', '/d', '/data', 'qqq', '']:
|
||||
assert equal_with_bash(x, ffc, fc, out=py.std.sys.stdout)
|
||||
assert equal_with_bash(x, ffc, fc, out=sys.stdout)
|
||||
|
||||
@pytest.mark.skipif("sys.platform in ('win32', 'darwin')")
|
||||
def test_remove_dir_prefix(self):
|
||||
|
@ -94,4 +95,4 @@ class TestArgComplete(object):
|
|||
ffc = FastFilesCompleter()
|
||||
fc = FilesCompleter()
|
||||
for x in '/usr/'.split():
|
||||
assert not equal_with_bash(x, ffc, fc, out=py.std.sys.stdout)
|
||||
assert not equal_with_bash(x, ffc, fc, out=sys.stdout)
|
||||
|
|
|
@ -5,6 +5,7 @@ import os
|
|||
import py_compile
|
||||
import stat
|
||||
import sys
|
||||
import textwrap
|
||||
import zipfile
|
||||
import py
|
||||
import pytest
|
||||
|
@ -911,7 +912,7 @@ class TestAssertionRewriteHookDetails(object):
|
|||
def test_reload_is_same(self, testdir):
|
||||
# A file that will be picked up during collecting.
|
||||
testdir.tmpdir.join("file.py").ensure()
|
||||
testdir.tmpdir.join("pytest.ini").write(py.std.textwrap.dedent("""
|
||||
testdir.tmpdir.join("pytest.ini").write(textwrap.dedent("""
|
||||
[pytest]
|
||||
python_files = *.py
|
||||
"""))
|
||||
|
@ -997,7 +998,7 @@ class TestIssue2121():
|
|||
def test_simple_failure():
|
||||
assert 1 + 1 == 3
|
||||
""")
|
||||
testdir.tmpdir.join("pytest.ini").write(py.std.textwrap.dedent("""
|
||||
testdir.tmpdir.join("pytest.ini").write(textwrap.dedent("""
|
||||
[pytest]
|
||||
python_files = tests/**.py
|
||||
"""))
|
||||
|
|
|
@ -410,8 +410,8 @@ class TestLastFailed(object):
|
|||
def test_lastfailed_collectfailure(self, testdir, monkeypatch):
|
||||
|
||||
testdir.makepyfile(test_maybe="""
|
||||
import py
|
||||
env = py.std.os.environ
|
||||
import os
|
||||
env = os.environ
|
||||
if '1' == env['FAILIMPORT']:
|
||||
raise ImportError('fail')
|
||||
def test_hello():
|
||||
|
@ -439,8 +439,8 @@ class TestLastFailed(object):
|
|||
def test_lastfailed_failure_subset(self, testdir, monkeypatch):
|
||||
|
||||
testdir.makepyfile(test_maybe="""
|
||||
import py
|
||||
env = py.std.os.environ
|
||||
import os
|
||||
env = os.environ
|
||||
if '1' == env['FAILIMPORT']:
|
||||
raise ImportError('fail')
|
||||
def test_hello():
|
||||
|
@ -448,8 +448,8 @@ class TestLastFailed(object):
|
|||
""")
|
||||
|
||||
testdir.makepyfile(test_maybe2="""
|
||||
import py
|
||||
env = py.std.os.environ
|
||||
import os
|
||||
env = os.environ
|
||||
if '1' == env['FAILIMPORT']:
|
||||
raise ImportError('fail')
|
||||
def test_hello():
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
from __future__ import absolute_import, division, print_function
|
||||
import pprint
|
||||
import sys
|
||||
import pytest
|
||||
import py
|
||||
|
||||
import _pytest._code
|
||||
from _pytest.main import Session, EXIT_NOTESTSCOLLECTED, _in_venv
|
||||
|
@ -36,7 +37,7 @@ class TestCollector(object):
|
|||
|
||||
assert fn1 == fn2
|
||||
assert fn1 != modcol
|
||||
if py.std.sys.version_info < (3, 0):
|
||||
if sys.version_info < (3, 0):
|
||||
assert cmp(fn1, fn2) == 0
|
||||
assert hash(fn1) == hash(fn2)
|
||||
|
||||
|
@ -128,7 +129,7 @@ class TestCollectFS(object):
|
|||
("activate", "activate.csh", "activate.fish",
|
||||
"Activate", "Activate.bat", "Activate.ps1"))
|
||||
def test_ignored_virtualenvs(self, testdir, fname):
|
||||
bindir = "Scripts" if py.std.sys.platform.startswith("win") else "bin"
|
||||
bindir = "Scripts" if sys.platform.startswith("win") else "bin"
|
||||
testdir.tmpdir.ensure("virtual", bindir, fname)
|
||||
testfile = testdir.tmpdir.ensure("virtual", "test_invenv.py")
|
||||
testfile.write("def test_hello(): pass")
|
||||
|
@ -147,7 +148,7 @@ class TestCollectFS(object):
|
|||
("activate", "activate.csh", "activate.fish",
|
||||
"Activate", "Activate.bat", "Activate.ps1"))
|
||||
def test_ignored_virtualenvs_norecursedirs_precedence(self, testdir, fname):
|
||||
bindir = "Scripts" if py.std.sys.platform.startswith("win") else "bin"
|
||||
bindir = "Scripts" if sys.platform.startswith("win") else "bin"
|
||||
# norecursedirs takes priority
|
||||
testdir.tmpdir.ensure(".virtual", bindir, fname)
|
||||
testfile = testdir.tmpdir.ensure(".virtual", "test_invenv.py")
|
||||
|
@ -163,7 +164,7 @@ class TestCollectFS(object):
|
|||
"Activate", "Activate.bat", "Activate.ps1"))
|
||||
def test__in_venv(self, testdir, fname):
|
||||
"""Directly test the virtual env detection function"""
|
||||
bindir = "Scripts" if py.std.sys.platform.startswith("win") else "bin"
|
||||
bindir = "Scripts" if sys.platform.startswith("win") else "bin"
|
||||
# no bin/activate, not a virtualenv
|
||||
base_path = testdir.tmpdir.mkdir('venv')
|
||||
assert _in_venv(base_path) is False
|
||||
|
@ -436,7 +437,7 @@ class TestSession(object):
|
|||
assert item.name == "test_func"
|
||||
newid = item.nodeid
|
||||
assert newid == id
|
||||
py.std.pprint.pprint(hookrec.calls)
|
||||
pprint.pprint(hookrec.calls)
|
||||
topdir = testdir.tmpdir # noqa
|
||||
hookrec.assert_contains([
|
||||
("pytest_collectstart", "collector.fspath == topdir"),
|
||||
|
@ -486,7 +487,7 @@ class TestSession(object):
|
|||
id = p.basename
|
||||
|
||||
items, hookrec = testdir.inline_genitems(id)
|
||||
py.std.pprint.pprint(hookrec.calls)
|
||||
pprint.pprint(hookrec.calls)
|
||||
assert len(items) == 2
|
||||
hookrec.assert_contains([
|
||||
("pytest_collectstart",
|
||||
|
@ -508,7 +509,7 @@ class TestSession(object):
|
|||
|
||||
items, hookrec = testdir.inline_genitems()
|
||||
assert len(items) == 1
|
||||
py.std.pprint.pprint(hookrec.calls)
|
||||
pprint.pprint(hookrec.calls)
|
||||
hookrec.assert_contains([
|
||||
("pytest_collectstart", "collector.fspath == test_aaa"),
|
||||
("pytest_pycollect_makeitem", "name == 'test_func'"),
|
||||
|
@ -529,7 +530,7 @@ class TestSession(object):
|
|||
|
||||
items, hookrec = testdir.inline_genitems(id)
|
||||
assert len(items) == 2
|
||||
py.std.pprint.pprint(hookrec.calls)
|
||||
pprint.pprint(hookrec.calls)
|
||||
hookrec.assert_contains([
|
||||
("pytest_collectstart", "collector.fspath == test_aaa"),
|
||||
("pytest_pycollect_makeitem", "name == 'test_func'"),
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
from __future__ import absolute_import, division, print_function
|
||||
import sys
|
||||
import py
|
||||
import textwrap
|
||||
import pytest
|
||||
|
||||
import _pytest._code
|
||||
|
@ -57,7 +57,7 @@ class TestParseIni(object):
|
|||
('pytest', 'pytest.ini')],
|
||||
)
|
||||
def test_ini_names(self, testdir, name, section):
|
||||
testdir.tmpdir.join(name).write(py.std.textwrap.dedent("""
|
||||
testdir.tmpdir.join(name).write(textwrap.dedent("""
|
||||
[{section}]
|
||||
minversion = 1.0
|
||||
""".format(section=section)))
|
||||
|
@ -66,11 +66,11 @@ class TestParseIni(object):
|
|||
|
||||
def test_toxini_before_lower_pytestini(self, testdir):
|
||||
sub = testdir.tmpdir.mkdir("sub")
|
||||
sub.join("tox.ini").write(py.std.textwrap.dedent("""
|
||||
sub.join("tox.ini").write(textwrap.dedent("""
|
||||
[pytest]
|
||||
minversion = 2.0
|
||||
"""))
|
||||
testdir.tmpdir.join("pytest.ini").write(py.std.textwrap.dedent("""
|
||||
testdir.tmpdir.join("pytest.ini").write(textwrap.dedent("""
|
||||
[pytest]
|
||||
minversion = 1.5
|
||||
"""))
|
||||
|
@ -731,7 +731,7 @@ class TestRootdir(object):
|
|||
class TestOverrideIniArgs(object):
|
||||
@pytest.mark.parametrize("name", "setup.cfg tox.ini pytest.ini".split())
|
||||
def test_override_ini_names(self, testdir, name):
|
||||
testdir.tmpdir.join(name).write(py.std.textwrap.dedent("""
|
||||
testdir.tmpdir.join(name).write(textwrap.dedent("""
|
||||
[pytest]
|
||||
custom = 1.0"""))
|
||||
testdir.makeconftest("""
|
||||
|
|
|
@ -232,7 +232,7 @@ def test_fixture_dependency(testdir, monkeypatch):
|
|||
ct1.write("")
|
||||
sub = testdir.mkdir("sub")
|
||||
sub.join("__init__.py").write("")
|
||||
sub.join("conftest.py").write(py.std.textwrap.dedent("""
|
||||
sub.join("conftest.py").write(dedent("""
|
||||
import pytest
|
||||
|
||||
@pytest.fixture
|
||||
|
@ -249,7 +249,7 @@ def test_fixture_dependency(testdir, monkeypatch):
|
|||
"""))
|
||||
subsub = sub.mkdir("subsub")
|
||||
subsub.join("__init__.py").write("")
|
||||
subsub.join("test_bar.py").write(py.std.textwrap.dedent("""
|
||||
subsub.join("test_bar.py").write(dedent("""
|
||||
import pytest
|
||||
|
||||
@pytest.fixture
|
||||
|
@ -265,7 +265,7 @@ def test_fixture_dependency(testdir, monkeypatch):
|
|||
|
||||
def test_conftest_found_with_double_dash(testdir):
|
||||
sub = testdir.mkdir("sub")
|
||||
sub.join("conftest.py").write(py.std.textwrap.dedent("""
|
||||
sub.join("conftest.py").write(dedent("""
|
||||
def pytest_addoption(parser):
|
||||
parser.addoption("--hello-world", action="store_true")
|
||||
"""))
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
from __future__ import absolute_import, division, print_function
|
||||
import argparse
|
||||
import sys
|
||||
import os
|
||||
import py
|
||||
|
@ -189,7 +190,7 @@ class TestParser(object):
|
|||
assert option.no is False
|
||||
|
||||
def test_drop_short_helper(self):
|
||||
parser = py.std.argparse.ArgumentParser(formatter_class=parseopt.DropShorterLongHelpFormatter)
|
||||
parser = argparse.ArgumentParser(formatter_class=parseopt.DropShorterLongHelpFormatter)
|
||||
parser.add_argument('-t', '--twoword', '--duo', '--two-word', '--two',
|
||||
help='foo').map_long_option = {'two': 'two-word'}
|
||||
# throws error on --deux only!
|
||||
|
|
|
@ -1,8 +1,10 @@
|
|||
# encoding: UTF-8
|
||||
from __future__ import absolute_import, division, print_function
|
||||
import pytest
|
||||
import py
|
||||
import os
|
||||
import re
|
||||
import sys
|
||||
import types
|
||||
|
||||
from _pytest.config import get_config, PytestPluginManager
|
||||
from _pytest.main import EXIT_NOTESTSCOLLECTED, Session
|
||||
|
@ -208,14 +210,14 @@ def test_importplugin_error_message(testdir, pytestpm):
|
|||
|
||||
expected_message = '.*Error importing plugin "qwe": Not possible to import: .'
|
||||
expected_traceback = ".*in test_traceback"
|
||||
assert py.std.re.match(expected_message, str(excinfo.value))
|
||||
assert py.std.re.match(expected_traceback, str(excinfo.traceback[-1]))
|
||||
assert re.match(expected_message, str(excinfo.value))
|
||||
assert re.match(expected_traceback, str(excinfo.traceback[-1]))
|
||||
|
||||
|
||||
class TestPytestPluginManager(object):
|
||||
def test_register_imported_modules(self):
|
||||
pm = PytestPluginManager()
|
||||
mod = py.std.types.ModuleType("x.y.pytest_hello")
|
||||
mod = types.ModuleType("x.y.pytest_hello")
|
||||
pm.register(mod)
|
||||
assert pm.is_registered(mod)
|
||||
values = pm.get_plugins()
|
||||
|
@ -226,8 +228,8 @@ class TestPytestPluginManager(object):
|
|||
assert pm.get_plugins() == values
|
||||
|
||||
def test_canonical_import(self, monkeypatch):
|
||||
mod = py.std.types.ModuleType("pytest_xyz")
|
||||
monkeypatch.setitem(py.std.sys.modules, 'pytest_xyz', mod)
|
||||
mod = types.ModuleType("pytest_xyz")
|
||||
monkeypatch.setitem(sys.modules, 'pytest_xyz', mod)
|
||||
pm = PytestPluginManager()
|
||||
pm.import_plugin('pytest_xyz')
|
||||
assert pm.get_plugin('pytest_xyz') == mod
|
||||
|
@ -237,7 +239,7 @@ class TestPytestPluginManager(object):
|
|||
testdir.syspathinsert()
|
||||
testdir.makepyfile(pytest_p1="#")
|
||||
testdir.makepyfile(pytest_p2="#")
|
||||
mod = py.std.types.ModuleType("temp")
|
||||
mod = types.ModuleType("temp")
|
||||
mod.pytest_plugins = ["pytest_p1", "pytest_p2"]
|
||||
pytestpm.consider_module(mod)
|
||||
assert pytestpm.get_plugin("pytest_p1").__name__ == "pytest_p1"
|
||||
|
@ -245,12 +247,12 @@ class TestPytestPluginManager(object):
|
|||
|
||||
def test_consider_module_import_module(self, testdir):
|
||||
pytestpm = get_config().pluginmanager
|
||||
mod = py.std.types.ModuleType("x")
|
||||
mod = types.ModuleType("x")
|
||||
mod.pytest_plugins = "pytest_a"
|
||||
aplugin = testdir.makepyfile(pytest_a="#")
|
||||
reprec = testdir.make_hook_recorder(pytestpm)
|
||||
# syspath.prepend(aplugin.dirpath())
|
||||
py.std.sys.path.insert(0, str(aplugin.dirpath()))
|
||||
sys.path.insert(0, str(aplugin.dirpath()))
|
||||
pytestpm.consider_module(mod)
|
||||
call = reprec.getcall(pytestpm.hook.pytest_plugin_registered.name)
|
||||
assert call.plugin.__name__ == "pytest_a"
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
from __future__ import absolute_import, division, print_function
|
||||
import warnings
|
||||
import re
|
||||
import py
|
||||
|
||||
import pytest
|
||||
from _pytest.recwarn import WarningsRecorder
|
||||
|
@ -24,9 +23,9 @@ class TestWarningsRecorderChecker(object):
|
|||
rec = WarningsRecorder()
|
||||
with rec:
|
||||
assert not rec.list
|
||||
py.std.warnings.warn_explicit("hello", UserWarning, "xyz", 13)
|
||||
warnings.warn_explicit("hello", UserWarning, "xyz", 13)
|
||||
assert len(rec.list) == 1
|
||||
py.std.warnings.warn(DeprecationWarning("hello"))
|
||||
warnings.warn(DeprecationWarning("hello"))
|
||||
assert len(rec.list) == 2
|
||||
warn = rec.pop()
|
||||
assert str(warn.message) == "hello"
|
||||
|
@ -64,14 +63,14 @@ class TestDeprecatedCall(object):
|
|||
|
||||
def dep(self, i, j=None):
|
||||
if i == 0:
|
||||
py.std.warnings.warn("is deprecated", DeprecationWarning,
|
||||
stacklevel=1)
|
||||
warnings.warn("is deprecated", DeprecationWarning,
|
||||
stacklevel=1)
|
||||
return 42
|
||||
|
||||
def dep_explicit(self, i):
|
||||
if i == 0:
|
||||
py.std.warnings.warn_explicit("dep_explicit", category=DeprecationWarning,
|
||||
filename="hello", lineno=3)
|
||||
warnings.warn_explicit("dep_explicit", category=DeprecationWarning,
|
||||
filename="hello", lineno=3)
|
||||
|
||||
def test_deprecated_call_raises(self):
|
||||
with pytest.raises(AssertionError) as excinfo:
|
||||
|
@ -86,16 +85,16 @@ class TestDeprecatedCall(object):
|
|||
assert ret == 42
|
||||
|
||||
def test_deprecated_call_preserves(self):
|
||||
onceregistry = py.std.warnings.onceregistry.copy()
|
||||
filters = py.std.warnings.filters[:]
|
||||
warn = py.std.warnings.warn
|
||||
warn_explicit = py.std.warnings.warn_explicit
|
||||
onceregistry = warnings.onceregistry.copy()
|
||||
filters = warnings.filters[:]
|
||||
warn = warnings.warn
|
||||
warn_explicit = warnings.warn_explicit
|
||||
self.test_deprecated_call_raises()
|
||||
self.test_deprecated_call()
|
||||
assert onceregistry == py.std.warnings.onceregistry
|
||||
assert filters == py.std.warnings.filters
|
||||
assert warn is py.std.warnings.warn
|
||||
assert warn_explicit is py.std.warnings.warn_explicit
|
||||
assert onceregistry == warnings.onceregistry
|
||||
assert filters == warnings.filters
|
||||
assert warn is warnings.warn
|
||||
assert warn_explicit is warnings.warn_explicit
|
||||
|
||||
def test_deprecated_explicit_call_raises(self):
|
||||
with pytest.raises(AssertionError):
|
||||
|
|
|
@ -2,10 +2,12 @@
|
|||
from __future__ import absolute_import, division, print_function
|
||||
|
||||
import _pytest._code
|
||||
import inspect
|
||||
import os
|
||||
import py
|
||||
import pytest
|
||||
import sys
|
||||
import types
|
||||
from _pytest import runner, main, outcomes
|
||||
|
||||
|
||||
|
@ -392,10 +394,10 @@ reporttypes = [
|
|||
|
||||
@pytest.mark.parametrize('reporttype', reporttypes, ids=[x.__name__ for x in reporttypes])
|
||||
def test_report_extra_parameters(reporttype):
|
||||
if hasattr(py.std.inspect, 'signature'):
|
||||
args = list(py.std.inspect.signature(reporttype.__init__).parameters.keys())[1:]
|
||||
if hasattr(inspect, 'signature'):
|
||||
args = list(inspect.signature(reporttype.__init__).parameters.keys())[1:]
|
||||
else:
|
||||
args = py.std.inspect.getargspec(reporttype.__init__)[0][1:]
|
||||
args = inspect.getargspec(reporttype.__init__)[0][1:]
|
||||
basekw = dict.fromkeys(args, [])
|
||||
report = reporttype(newthing=1, **basekw)
|
||||
assert report.newthing == 1
|
||||
|
@ -564,10 +566,10 @@ def test_importorskip(monkeypatch):
|
|||
importorskip("asdlkj")
|
||||
|
||||
try:
|
||||
sys = importorskip("sys")
|
||||
assert sys == py.std.sys
|
||||
sysmod = importorskip("sys")
|
||||
assert sysmod is sys
|
||||
# path = pytest.importorskip("os.path")
|
||||
# assert path == py.std.os.path
|
||||
# assert path == os.path
|
||||
excinfo = pytest.raises(pytest.skip.Exception, f)
|
||||
path = py.path.local(excinfo.getrepr().reprcrash.path)
|
||||
# check that importorskip reports the actual call
|
||||
|
@ -575,7 +577,7 @@ def test_importorskip(monkeypatch):
|
|||
assert path.purebasename == "test_runner"
|
||||
pytest.raises(SyntaxError, "pytest.importorskip('x y z')")
|
||||
pytest.raises(SyntaxError, "pytest.importorskip('x=y')")
|
||||
mod = py.std.types.ModuleType("hello123")
|
||||
mod = types.ModuleType("hello123")
|
||||
mod.__version__ = "1.3"
|
||||
monkeypatch.setitem(sys.modules, "hello123", mod)
|
||||
pytest.raises(pytest.skip.Exception, """
|
||||
|
@ -595,7 +597,7 @@ def test_importorskip_imports_last_module_part():
|
|||
|
||||
def test_importorskip_dev_module(monkeypatch):
|
||||
try:
|
||||
mod = py.std.types.ModuleType("mockmodule")
|
||||
mod = types.ModuleType("mockmodule")
|
||||
mod.__version__ = '0.13.0.dev-43290'
|
||||
monkeypatch.setitem(sys.modules, 'mockmodule', mod)
|
||||
mod2 = pytest.importorskip('mockmodule', minversion='0.12.0')
|
||||
|
|
|
@ -326,7 +326,7 @@ def test_repr_python_version(monkeypatch):
|
|||
try:
|
||||
monkeypatch.setattr(sys, 'version_info', (2, 5, 1, 'final', 0))
|
||||
assert repr_pythonversion() == "2.5.1-final-0"
|
||||
py.std.sys.version_info = x = (2, 3)
|
||||
sys.version_info = x = (2, 3)
|
||||
assert repr_pythonversion() == str(x)
|
||||
finally:
|
||||
monkeypatch.undo() # do this early as pytest can get confused
|
||||
|
@ -475,11 +475,11 @@ class TestTerminalFunctional(object):
|
|||
pass
|
||||
""")
|
||||
result = testdir.runpytest()
|
||||
verinfo = ".".join(map(str, py.std.sys.version_info[:3]))
|
||||
verinfo = ".".join(map(str, sys.version_info[:3]))
|
||||
result.stdout.fnmatch_lines([
|
||||
"*===== test session starts ====*",
|
||||
"platform %s -- Python %s*pytest-%s*py-%s*pluggy-%s" % (
|
||||
py.std.sys.platform, verinfo,
|
||||
sys.platform, verinfo,
|
||||
pytest.__version__, py.__version__, pluggy.__version__),
|
||||
"*test_header_trailer_info.py .*",
|
||||
"=* 1 passed*in *.[0-9][0-9] seconds *=",
|
||||
|
|
Loading…
Reference in New Issue