Compare commits
15 Commits
pre-commit
...
main
Author | SHA1 | Date |
---|---|---|
|
ac41898755 | |
|
07ed62ae27 | |
|
49bb5c89a6 | |
|
e8aee21384 | |
|
4a75f65c73 | |
|
2719fd6825 | |
|
b62974e63f | |
|
ffcc001562 | |
|
94c0122a17 | |
|
8398609f08 | |
|
57fe9f53c6 | |
|
9c319d6605 | |
|
a34f2f06db | |
|
388cf8f381 | |
|
2455e99ea3 |
|
@ -1,6 +1,6 @@
|
|||
repos:
|
||||
- repo: https://github.com/astral-sh/ruff-pre-commit
|
||||
rev: "v0.5.0"
|
||||
rev: "v0.4.10"
|
||||
hooks:
|
||||
- id: ruff
|
||||
args: ["--fix"]
|
||||
|
@ -12,7 +12,7 @@ repos:
|
|||
- id: end-of-file-fixer
|
||||
- id: check-yaml
|
||||
- repo: https://github.com/adamchainz/blacken-docs
|
||||
rev: 1.18.0
|
||||
rev: 1.16.0
|
||||
hooks:
|
||||
- id: blacken-docs
|
||||
additional_dependencies: [black==24.1.1]
|
||||
|
@ -21,7 +21,7 @@ repos:
|
|||
hooks:
|
||||
- id: python-use-type-annotations
|
||||
- repo: https://github.com/pre-commit/mirrors-mypy
|
||||
rev: v1.10.1
|
||||
rev: v1.10.0
|
||||
hooks:
|
||||
- id: mypy
|
||||
files: ^(src/|testing/|scripts/)
|
||||
|
@ -102,6 +102,14 @@ repos:
|
|||
)
|
||||
$
|
||||
files: ^changelog/
|
||||
- id: changelogs-user-role
|
||||
name: Changelog files should use a non-broken :user:`name` role
|
||||
language: pygrep
|
||||
entry: :user:([^`]+`?|`[^`]+[\s,])
|
||||
pass_filenames: true
|
||||
types:
|
||||
- file
|
||||
- rst
|
||||
- id: py-deprecated
|
||||
name: py library is deprecated
|
||||
language: pygrep
|
||||
|
|
1
AUTHORS
1
AUTHORS
|
@ -430,6 +430,7 @@ Victor Rodriguez
|
|||
Victor Uriarte
|
||||
Vidar T. Fauske
|
||||
Vijay Arora
|
||||
Virendra Patil
|
||||
Virgil Dupras
|
||||
Vitaly Lashmanov
|
||||
Vivaan Verma
|
||||
|
|
|
@ -1,7 +1,11 @@
|
|||
Fix a regression in pytest 8.0 where tracebacks get longer and longer when multiple tests fail due to a shared higher-scope fixture which raised.
|
||||
Fixed a regression in pytest 8.0 where tracebacks get longer and longer when multiple
|
||||
tests fail due to a shared higher-scope fixture which raised -- by :user:`bluetech`.
|
||||
|
||||
Also fix a similar regression in pytest 5.4 for collectors which raise during setup.
|
||||
Also fixed a similar regression in pytest 5.4 for collectors which raise during setup.
|
||||
|
||||
The fix necessitated internal changes which may affect some plugins:
|
||||
- ``FixtureDef.cached_result[2]`` is now a tuple ``(exc, tb)`` instead of ``exc``.
|
||||
- ``SetupState.stack`` failures are now a tuple ``(exc, tb)`` instead of ``exc``.
|
||||
|
||||
* ``FixtureDef.cached_result[2]`` is now a tuple ``(exc, tb)``
|
||||
instead of ``exc``.
|
||||
* ``SetupState.stack`` failures are now a tuple ``(exc, tb)``
|
||||
instead of ``exc``.
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
12204.bugfix.rst
|
|
@ -4,4 +4,4 @@ the automatically created pull requests and re-open them to trigger the
|
|||
CI runs. From now on, they only need to click the `Ready for review`
|
||||
button instead.
|
||||
|
||||
-- by :user:`webknjaz`.
|
||||
-- by :user:`webknjaz`
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
Improve handling of invalid regex patterns in :func:`pytest.raises(match=r'...') <pytest.raises>` by providing a clear error message.
|
|
@ -3,4 +3,4 @@ pytest's own tests marked as expected to fail from the coverage
|
|||
report. This has an effect of reducing the influence of flaky
|
||||
tests on the resulting number.
|
||||
|
||||
-- by :user`webknjaz`
|
||||
-- by :user:`webknjaz`
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
The _in_venv function now detects Python virtual environments by checking
|
||||
for a pyvenv.cfg file, ensuring reliable detection on various platforms.
|
||||
|
||||
-- by :user:`zachsnickers`.
|
||||
The ``_in_venv()`` function now detects Python virtual environments by
|
||||
checking for a :file:`pyvenv.cfg` file, ensuring reliable detection on
|
||||
various platforms -- by :user:`zachsnickers`.
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
12544.improvement.rst
|
|
@ -0,0 +1,2 @@
|
|||
Possible typos in using the ``:user:`` RST role is now being linted
|
||||
through the pre-commit tool integration -- by :user:`webknjaz`.
|
|
@ -7,6 +7,7 @@ from decimal import Decimal
|
|||
import math
|
||||
from numbers import Complex
|
||||
import pprint
|
||||
import re
|
||||
from types import TracebackType
|
||||
from typing import Any
|
||||
from typing import Callable
|
||||
|
@ -986,6 +987,14 @@ class RaisesContext(ContextManager[_pytest._code.ExceptionInfo[E]]):
|
|||
self.message = message
|
||||
self.match_expr = match_expr
|
||||
self.excinfo: _pytest._code.ExceptionInfo[E] | None = None
|
||||
if self.match_expr is not None:
|
||||
re_error = None
|
||||
try:
|
||||
re.compile(self.match_expr)
|
||||
except re.error as e:
|
||||
re_error = e
|
||||
if re_error is not None:
|
||||
fail(f"Invalid regex pattern provided to 'match': {re_error}")
|
||||
|
||||
def __enter__(self) -> _pytest._code.ExceptionInfo[E]:
|
||||
self.excinfo = _pytest._code.ExceptionInfo.for_later()
|
||||
|
|
|
@ -132,6 +132,26 @@ class TestRaises:
|
|||
result = pytester.runpytest()
|
||||
result.stdout.fnmatch_lines(["*2 failed*"])
|
||||
|
||||
def test_raises_with_invalid_regex(self, pytester: Pytester) -> None:
|
||||
pytester.makepyfile(
|
||||
"""
|
||||
import pytest
|
||||
|
||||
def test_invalid_regex():
|
||||
with pytest.raises(ValueError, match="invalid regex character ["):
|
||||
raise ValueError()
|
||||
"""
|
||||
)
|
||||
result = pytester.runpytest()
|
||||
result.stdout.fnmatch_lines(
|
||||
[
|
||||
"*Invalid regex pattern provided to 'match': unterminated character set at position 24*",
|
||||
]
|
||||
)
|
||||
result.stdout.no_fnmatch_line("*Traceback*")
|
||||
result.stdout.no_fnmatch_line("*File*")
|
||||
result.stdout.no_fnmatch_line("*line*")
|
||||
|
||||
def test_noclass(self) -> None:
|
||||
with pytest.raises(TypeError):
|
||||
pytest.raises("wrong", lambda: None) # type: ignore[call-overload]
|
||||
|
|
Loading…
Reference in New Issue