summaryrefslogtreecommitdiff
path: root/testing/code
diff options
context:
space:
mode:
authorBruno Oliveira <nicoddemus@gmail.com>2019-05-27 20:31:52 -0300
committerBruno Oliveira <nicoddemus@gmail.com>2019-06-02 14:39:11 -0300
commit4d49ba65297102110ae8aeecdb3b82b23a231fba (patch)
tree10a917331db131a6728775ff7d462732ff1f9466 /testing/code
parent733f43b02eafe2934c2e86b7d0370e25dfe95a48 (diff)
downloadpytest-4d49ba65297102110ae8aeecdb3b82b23a231fba.tar.gz
Drop Python 2.7 and 3.4 support
* Update setup.py requires and classifiers * Drop Python 2.7 and 3.4 from CI * Update docs dropping 2.7 and 3.4 support * Fix mock imports and remove tests related to pypi's mock module * Add py27 and 34 support docs to the sidebar * Remove usage of six from tmpdir * Remove six.PY* code blocks * Remove sys.version_info related code * Cleanup compat * Remove obsolete safe_str * Remove obsolete __unicode__ methods * Remove compat.PY35 and compat.PY36: not really needed anymore * Remove unused UNICODE_TYPES * Remove Jython specific code * Remove some Python 2 references from docs Related to #5275
Diffstat (limited to 'testing/code')
-rw-r--r--testing/code/test_code.py33
-rw-r--r--testing/code/test_excinfo.py37
-rw-r--r--testing/code/test_source.py4
3 files changed, 19 insertions, 55 deletions
diff --git a/testing/code/test_code.py b/testing/code/test_code.py
index 0b63fcf4d..fcde20b41 100644
--- a/testing/code/test_code.py
+++ b/testing/code/test_code.py
@@ -4,6 +4,7 @@ from __future__ import division
from __future__ import print_function
import sys
+from unittest import mock
from six import text_type
from test_excinfo import TWMock
@@ -11,11 +12,6 @@ from test_excinfo import TWMock
import _pytest._code
import pytest
-try:
- import mock
-except ImportError:
- import unittest.mock as mock
-
def test_ne():
code1 = _pytest._code.Code(compile('foo = "bar"', "", "exec"))
@@ -92,21 +88,6 @@ def test_unicode_handling():
excinfo = pytest.raises(Exception, f)
text_type(excinfo)
- if sys.version_info < (3,):
- bytes(excinfo)
-
-
-@pytest.mark.skipif(sys.version_info[0] >= 3, reason="python 2 only issue")
-def test_unicode_handling_syntax_error():
- value = u"ąć".encode("UTF-8")
-
- def f():
- raise SyntaxError("invalid syntax", (None, 1, 3, value))
-
- excinfo = pytest.raises(Exception, f)
- str(excinfo)
- if sys.version_info[0] < 3:
- text_type(excinfo)
def test_code_getargs():
@@ -202,10 +183,8 @@ class TestReprFuncArgs(object):
r = ReprFuncArgs(args)
r.toterminal(tw)
- if sys.version_info[0] >= 3:
- assert (
- tw.lines[0]
- == r"unicode_string = São Paulo, utf8_string = b'S\xc3\xa3o Paulo'"
- )
- else:
- assert tw.lines[0] == "unicode_string = São Paulo, utf8_string = São Paulo"
+
+ assert (
+ tw.lines[0]
+ == r"unicode_string = São Paulo, utf8_string = b'S\xc3\xa3o Paulo'"
+ )
diff --git a/testing/code/test_excinfo.py b/testing/code/test_excinfo.py
index a76797301..33cd7169b 100644
--- a/testing/code/test_excinfo.py
+++ b/testing/code/test_excinfo.py
@@ -17,7 +17,7 @@ import pytest
from _pytest._code.code import ExceptionChainRepr
from _pytest._code.code import ExceptionInfo
from _pytest._code.code import FormattedExcinfo
-from _pytest._code.code import ReprExceptionInfo
+
try:
import importlib
@@ -26,8 +26,6 @@ except ImportError:
else:
invalidate_import_caches = getattr(importlib, "invalidate_caches", None)
-failsonjython = pytest.mark.xfail("sys.platform.startswith('java')")
-
pytest_version_info = tuple(map(int, pytest.__version__.split(".")[:3]))
@@ -146,7 +144,6 @@ class TestTraceback_f_g_h(object):
assert s.startswith("def f():")
assert s.endswith("raise ValueError")
- @failsonjython
def test_traceback_entry_getsource_in_construct(self):
source = _pytest._code.Source(
"""\
@@ -500,8 +497,7 @@ class TestFormattedExcinfo(object):
excinfo = _pytest._code.ExceptionInfo.from_current()
repr = pr.repr_excinfo(excinfo)
assert repr.reprtraceback.reprentries[1].lines[0] == "> ???"
- if sys.version_info[0] >= 3:
- assert repr.chain[0][0].reprentries[1].lines[0] == "> ???"
+ assert repr.chain[0][0].reprentries[1].lines[0] == "> ???"
def test_repr_many_line_source_not_existing(self):
pr = FormattedExcinfo()
@@ -519,8 +515,7 @@ raise ValueError()
excinfo = _pytest._code.ExceptionInfo.from_current()
repr = pr.repr_excinfo(excinfo)
assert repr.reprtraceback.reprentries[1].lines[0] == "> ???"
- if sys.version_info[0] >= 3:
- assert repr.chain[0][0].reprentries[1].lines[0] == "> ???"
+ assert repr.chain[0][0].reprentries[1].lines[0] == "> ???"
def test_repr_source_failing_fullsource(self):
pr = FormattedExcinfo()
@@ -577,14 +572,12 @@ raise ValueError()
fail = IOError()
repr = pr.repr_excinfo(excinfo)
assert repr.reprtraceback.reprentries[0].lines[0] == "> ???"
- if sys.version_info[0] >= 3:
- assert repr.chain[0][0].reprentries[0].lines[0] == "> ???"
+ 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 sys.version_info[0] >= 3:
- assert repr.chain[0][0].reprentries[0].lines[0] == "> ???"
+ assert repr.chain[0][0].reprentries[0].lines[0] == "> ???"
def test_repr_local(self):
p = FormattedExcinfo(showlocals=True)
@@ -828,9 +821,9 @@ raise ValueError()
repr = p.repr_excinfo(excinfo)
assert repr.reprtraceback
assert len(repr.reprtraceback.reprentries) == len(reprtb.reprentries)
- if sys.version_info[0] >= 3:
- assert repr.chain[0][0]
- assert len(repr.chain[0][0].reprentries) == len(reprtb.reprentries)
+
+ assert repr.chain[0][0]
+ assert len(repr.chain[0][0].reprentries) == len(reprtb.reprentries)
assert repr.reprcrash.path.endswith("mod.py")
assert repr.reprcrash.message == "ValueError: 0"
@@ -916,13 +909,11 @@ raise ValueError()
for style in ("short", "long", "no"):
for showlocals in (True, False):
repr = excinfo.getrepr(style=style, showlocals=showlocals)
- if sys.version_info[0] < 3:
- assert isinstance(repr, ReprExceptionInfo)
assert repr.reprtraceback.style == style
- if sys.version_info[0] >= 3:
- assert isinstance(repr, ExceptionChainRepr)
- for repr in repr.chain:
- assert repr[0].style == style
+
+ assert isinstance(repr, ExceptionChainRepr)
+ for repr in repr.chain:
+ assert repr[0].style == style
def test_reprexcinfo_unicode(self):
from _pytest._code.code import TerminalRepr
@@ -1133,7 +1124,6 @@ raise ValueError()
msg.endswith("mod.py")
assert tw.lines[20] == ":9: ValueError"
- @pytest.mark.skipif("sys.version_info[0] < 3")
def test_exc_chain_repr(self, importasmod):
mod = importasmod(
"""
@@ -1219,7 +1209,6 @@ raise ValueError()
assert line.endswith("mod.py")
assert tw.lines[47] == ":15: AttributeError"
- @pytest.mark.skipif("sys.version_info[0] < 3")
@pytest.mark.parametrize("mode", ["from_none", "explicit_suppress"])
def test_exc_repr_chain_suppression(self, importasmod, mode):
"""Check that exc repr does not show chained exceptions in Python 3.
@@ -1261,7 +1250,6 @@ raise ValueError()
assert tw.lines[9] == ":6: AttributeError"
assert len(tw.lines) == 10
- @pytest.mark.skipif("sys.version_info[0] < 3")
@pytest.mark.parametrize(
"reason, description",
[
@@ -1321,7 +1309,6 @@ raise ValueError()
]
)
- @pytest.mark.skipif("sys.version_info[0] < 3")
def test_exc_chain_repr_cycle(self, importasmod):
mod = importasmod(
"""
diff --git a/testing/code/test_source.py b/testing/code/test_source.py
index 0a2a98c02..b86d18d0c 100644
--- a/testing/code/test_source.py
+++ b/testing/code/test_source.py
@@ -16,8 +16,6 @@ import _pytest._code
import pytest
from _pytest._code import Source
-failsonjython = pytest.mark.xfail("sys.platform.startswith('java')")
-
def test_source_str_function():
x = Source("3")
@@ -122,7 +120,7 @@ def test_source_strip_multiline():
def test_syntaxerror_rerepresentation():
ex = pytest.raises(SyntaxError, _pytest._code.compile, "xyz xyz")
assert ex.value.lineno == 1
- assert ex.value.offset in (4, 5, 7) # XXX pypy/jython versus cpython?
+ assert ex.value.offset == 7
assert ex.value.text.strip(), "x x"