Drop dependency on py.io

Pytest 7.2.0 dropped its dependency on the `py` package. We don't
specify `py` explicitly as a dependency, so tests starting failing since
the release of pytest 7.2.0.

To drop this dependency, pytest vendored `py.io.TerminalWriter` into
`_pytest._io` in pytest commit 276405a03 (6.0.0rc1). It looks like we
still support pytest 5.0 —at least it's listed in tox.ini— so I fall
back to importing from `py.io` if it isn't present in `_pytest`.

This was our only direct use of the `py` library.
This commit is contained in:
David Röthlisberger 2022-11-03 12:42:10 +00:00
parent 6ea28d3a4b
commit 36e81cb924
1 changed files with 7 additions and 3 deletions

View File

@ -5,9 +5,13 @@ import itertools
import os.path
from typing import TYPE_CHECKING, cast
import py
from mako.lookup import TemplateLookup
try:
from _pytest._io import TerminalWriter
except ImportError:
from py.io import TerminalWriter
from .feature import get_features
from .scenario import inject_fixturedefs_for_step, make_python_docstring, make_python_name, make_string_literal
from .steps import get_step_fixture_name
@ -79,7 +83,7 @@ def show_missing_code(config: Config) -> int:
def print_missing_code(scenarios: list[ScenarioTemplate], steps: list[Step]) -> None:
"""Print missing code with TerminalWriter."""
tw = py.io.TerminalWriter()
tw = TerminalWriter()
scenario = step = None
for scenario in scenarios:
@ -166,7 +170,7 @@ def group_steps(steps: list[Step]) -> list[Step]:
def _show_missing_code_main(config: Config, session: Session) -> None:
"""Preparing fixture duplicates for output."""
tw = py.io.TerminalWriter()
tw = TerminalWriter()
session.perform_collect()
fm = session._fixturemanager