diff --git a/_pytest/assertion/util.py b/_pytest/assertion/util.py index 71ad48251..06d60a6fc 100644 --- a/_pytest/assertion/util.py +++ b/_pytest/assertion/util.py @@ -5,11 +5,7 @@ import pprint import _pytest._code import py import six -import sys -if sys.version_info >= (3, 4): - from collections.abc import Sequence -else: - from collections import Sequence +from ..compat import Sequence u = six.text_type diff --git a/_pytest/compat.py b/_pytest/compat.py index 92df65656..a4ec25212 100644 --- a/_pytest/compat.py +++ b/_pytest/compat.py @@ -38,6 +38,14 @@ PY35 = sys.version_info[:2] >= (3, 5) PY36 = sys.version_info[:2] >= (3, 6) MODULE_NOT_FOUND_ERROR = 'ModuleNotFoundError' if PY36 else 'ImportError' +if _PY2: + # those raise DeprecationWarnings in Python >=3.7 + from collections.abc import MutableMapping as MappingMixin # noqa + from collections.abc import Sequence # noqa +else: + from collections import MutableMapping as MappingMixin # noqa + from collections import Sequence # noqa + def _format_args(func): return str(signature(func)) diff --git a/_pytest/mark/structures.py b/_pytest/mark/structures.py index c52fbd277..a0d4a5ce7 100644 --- a/_pytest/mark/structures.py +++ b/_pytest/mark/structures.py @@ -1,18 +1,13 @@ -import sys -if sys.version_info >= (3, 4): - from collections.abc import MutableMapping as MappingMixin -else: - from collections import MutableMapping as MappingMixin -from collections import namedtuple -import warnings -from operator import attrgetter import inspect +import warnings +from collections import namedtuple +from operator import attrgetter import attr -from ..deprecated import MARK_PARAMETERSET_UNPACKING -from ..compat import NOTSET, getfslineno from six.moves import map +from ..compat import NOTSET, getfslineno, MappingMixin +from ..deprecated import MARK_PARAMETERSET_UNPACKING EMPTY_PARAMETERSET_OPTION = "empty_parameter_set_mark"