Skip to content

Commit

Permalink
Bump pytest to >=7.4.0 (#15611)
Browse files Browse the repository at this point in the history
The 7.4.0 release of pytest broke mypy because we were using some
undocumented, private API that was removed. Ideally we'd stop using the
private API, but nobody seems to remember why we started using the
private API in the first place (see
#15501 (comment), and
following comments). For now it (unfortunately) seems safer to just
migrate to the new private API rather than try to figure out an
alternative using public API.

I also took @bluetech's advice in
#15501 (comment) to
improve the type annotations in the method in question.
  • Loading branch information
AlexWaygood authored Jul 12, 2023
1 parent 67cc059 commit 0a020fa
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 5 deletions.
7 changes: 5 additions & 2 deletions mypy/test/data.py
Original file line number Diff line number Diff line change
Expand Up @@ -378,7 +378,10 @@ def teardown(self) -> None:
def reportinfo(self) -> tuple[str, int, str]:
return self.file, self.line, self.name

def repr_failure(self, excinfo: Any, style: Any | None = None) -> str:
def repr_failure(
self, excinfo: pytest.ExceptionInfo[BaseException], style: Any | None = None
) -> str:
excrepr: object
if isinstance(excinfo.value, SystemExit):
# We assume that before doing exit() (which raises SystemExit) we've printed
# enough context about what happened so that a stack trace is not useful.
Expand All @@ -388,7 +391,7 @@ def repr_failure(self, excinfo: Any, style: Any | None = None) -> str:
elif isinstance(excinfo.value, pytest.fail.Exception) and not excinfo.value.pytrace:
excrepr = excinfo.exconly()
else:
self.parent._prunetraceback(excinfo)
excinfo.traceback = self.parent._traceback_filter(excinfo)
excrepr = excinfo.getrepr(style="short")

return f"data: {self.file}:{self.line}:\n{excrepr}"
Expand Down
4 changes: 1 addition & 3 deletions test-requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,7 @@ lxml>=4.9.1,<4.9.3; (python_version<'3.11' or sys_platform!='win32') and python_
pre-commit
pre-commit-hooks==4.4.0
psutil>=4.0
# pytest 6.2.3 does not support Python 3.10
# TODO: fix use of removed private APIs so we can use the latest pytest
pytest>=6.2.4,<7.4.0
pytest>=7.4.0
pytest-xdist>=1.34.0
pytest-cov>=2.10.0
ruff==0.0.272 # must match version in .pre-commit-config.yaml
Expand Down

0 comments on commit 0a020fa

Please sign in to comment.