File tree Expand file tree Collapse file tree 2 files changed +24
-10
lines changed Expand file tree Collapse file tree 2 files changed +24
-10
lines changed Original file line number Diff line number Diff line change @@ -279,12 +279,12 @@ exception at a specific level; exceptions contained directly in the top
279
279
assert not excinfo.group_contains(RuntimeError , depth = 2 )
280
280
assert not excinfo.group_contains(TypeError , depth = 1 )
281
281
282
- Alternate form (legacy)
283
- ~~~~~~~~~~~~~~~~~~~~~~~
282
+ Alternate ` pytest.raises ` form (legacy)
283
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
284
284
285
- There is an alternate form where you pass
286
- a function that will be executed, along ``*args `` and ``**kwargs ``, and :func: `pytest.raises `
287
- will execute the function with the arguments and assert that the given exception is raised:
285
+ There is an alternate form of :func: ` pytest.raises ` where you pass
286
+ a function that will be executed, along with ``*args `` and ``**kwargs ``. :func: `pytest.raises `
287
+ will then execute the function with those arguments and assert that the given exception is raised:
288
288
289
289
.. code-block :: python
290
290
@@ -329,6 +329,18 @@ This will only "xfail" if the test fails by raising ``IndexError`` or subclasses
329
329
* Using :func: `pytest.raises ` is likely to be better for cases where you are
330
330
testing exceptions your own code is deliberately raising, which is the majority of cases.
331
331
332
+ You can also use :class: `pytest.RaisesGroup `:
333
+
334
+ .. code-block :: python
335
+
336
+ def f ():
337
+ raise ExceptionGroup(" " , [IndexError ()])
338
+
339
+
340
+ @pytest.mark.xfail (raises = RaisesGroup(IndexError ))
341
+ def test_f ():
342
+ f()
343
+
332
344
333
345
.. _`assertwarns` :
334
346
Original file line number Diff line number Diff line change @@ -197,9 +197,6 @@ class RaisesExc(AbstractRaises[BaseExcT_co_default]):
197
197
...
198
198
with RaisesGroups(RaisesExc(check=lambda x: type(x) is ValueError)):
199
199
...
200
-
201
- Tip: if you install ``hypothesis`` and import it in ``conftest.py`` you will get
202
- readable ``repr``'s of ``check`` callables in the output.
203
200
"""
204
201
205
202
# Trio bundled hypothesis monkeypatching, we will probably instead assume that
@@ -367,8 +364,13 @@ class RaisesGroup(AbstractRaises[BaseExceptionGroup[BaseExcT_co]]):
367
364
even though it generally does not care about the order of the exceptions in the group.
368
365
To avoid the above you should specify the first :exc:`ValueError` with a :class:`RaisesExc` as well.
369
366
370
- Tip: if you install ``hypothesis`` and import it in ``conftest.py`` you will get
371
- readable ``repr``'s of ``check`` callables in the output.
367
+ .. note::
368
+ When raised exceptions don't match the expected ones, you'll get a detailed error
369
+ message explaining why. This includes ``repr(check)`` if set, which in Python can be
370
+ overly verbose, showing memory locations etc etc.
371
+
372
+ If installed and imported (in e.g. ``conftest.py``), the ``hypothesis`` library will
373
+ monkeypatch this output to provide shorter & more readable repr's.
372
374
"""
373
375
374
376
# allow_unwrapped=True requires: singular exception, exception not being
You can’t perform that action at this time.
0 commit comments