# Release history

## pytest-trio 0.8.0 (2022-11-01)

### Features

- If a test raises an `ExceptionGroup` (or nested `ExceptionGroup`s) with only a single ‘leaf’ exception from `pytest.xfail()` or `pytest.skip()`, we now unwrap it to have the desired effect on Pytest. `ExceptionGroup`s with two or more leaf exceptions, even of the same type, are not changed and will be treated as ordinary test failures.

  See pytest-dev/pytest#9680 for design discussion. This feature is particularly useful if you’ve enabled the new strict_exception_groups=True option. (#104)

### Bugfixes

- Fix an issue where if two fixtures are being set up concurrently, and one crashes and the other hangs, then the test as a whole would hang, rather than being cancelled and unwound after the crash. (#120)

### Misc

- Trio 0.22.0 deprecated `MultiError` in favor of the standard-library (or backported) `ExceptionGroup` type; `pytest-trio` now uses `ExceptionGroup` exclusively and therefore requires Trio 0.22.0 or later. (#128)

- Dropped support for end-of-life Python 3.6, and the `async_generator` library necessary to support it, and started testing on Python 3.10 and 3.11. (#129)

## pytest-trio 0.7.0 (2020-10-15)

### Features

- Support added for alternative Trio run functions via the `trio_run` configuration variable and `@pytest.mark.trio(run=...)`. Presently supports Trio and QTrio. (#105)

### Deprecations and Removals

- Python 3.5 support removed. (#96)

## pytest-trio 0.6.0 (2020-05-20)

### Features

- Incompatible change: if you use `yield` inside a Trio fixture, and the `yield` gets cancelled (for example, due to a background task crashing), then the `yield` will now raise `trio.Cancelled`. See An important note about yield fixtures for details. Also, in this same case, pytest-trio will now reliably mark the test as failed, even if the fixture doesn’t go on to raise an exception. (#75)

- Updated for compatibility with Trio v0.15.0.

## pytest-trio 0.5.2 (2019-02-13)

### Features

- pytest-trio now makes the Trio scheduler deterministic while running inside a Hypothesis test. Hopefully you won’t see any change, but if you had scheduler-dependent bugs Hypothesis will be more effective now. (#73)

- Updated for compatibility with trio v0.11.0.

## pytest-trio 0.5.1 (2018-09-28)

### Bugfixes

- The pytest 3.8.1 release broke pytest-trio’s handling of trio tests defined as class methods. We fixed it again. (#64)

## pytest-trio 0.5.0 (2018-08-26)

This is a major release, including a rewrite of large portions of the internals. We believe it should be backwards compatible with existing projects. Major new features include:

- “trio mode”: no more writing `@pytest.mark.trio` everywhere!

- it’s now safe to use nurseries inside fixtures (#55)

- new `@trio_fixture` decorator to explicitly mark a fixture as a trio fixture

- a number of easy-to-make mistakes are now caught and raise informative errors

- the `nursery` fixture is now 87% more magical

For more details, see the manual. Oh right, speaking of which: we finally have a manual! You should read it.

## pytest-trio 0.4.2 (2018-06-29)

### Features

- pytest-trio now integrates with Hypothesis to support `@given` on async tests using Trio. (#42)

## pytest-trio 0.4.1 (2018-04-14)

No significant changes.

## pytest-trio 0.4.0 (2018-04-14)

- Fix compatibility with trio 0.4.0 (#25)

## pytest-trio 0.3.0 (2018-01-03)

### Features

- Add `nursery` fixture and improve teardown handling for yield fixture (#25)

## pytest-trio 0.2.0 (2017-12-15)

- Heavy improvements, add async yield fixture, fix bugs, add tests etc. (#17)

### Deprecations and Removals

- Remove unused_tcp_port{,_factory} fixtures (#15)

## pytest-trio 0.1.1 (2017-12-08)

Disable intersphinx for trio (cause crash in CI for the moment due to 404 in readthedoc).

## pytest-trio 0.1.0 (2017-12-08)

Initial release.