Hypothesis plugin for trio
Project description
Welcome to hypothesis-trio!
Hypothesis supports Trio out of the box for non-stateful tests. This project aims at supporting the stateful mode ;-)
License: Your choice of MIT or Apache License 2.0
Usage
Replace hypothesis.stateful.RuleBasedStateMachine by hypothesis_trio.stateful.TrioRuleBasedStateMachine:
from hypothesis_trio.stateful import TrioRuleBasedStateMachine, run_state_machine_as_test
def test_trio_number_modifier(hypothesis_settings):
class NumberModifier(TrioRuleBasedStateMachine):
folders = Bundle('folders')
files = Bundle('files')
@initialize(target=folders)
async def init_folders(self):
await trio.sleep(0)
return '/'
@rule(target=folders, name=name_strategy)
async def create_folder(self, parent, name):
await trio.sleep(0)
return '%s/%s' % (parent, name)
@rule(target=files, name=name_strategy)
async def create_file(self, parent, name):
await trio.sleep(0)
return '%s/%s' % (parent, name)
async def teardown(self):
await trio.sleep(0)
run_state_machine_as_test(NumberModifier, settings=hypothesis_settings)
Support for Trio-Asyncio
trio-asyncio allows to mix asyncio and trio code altogether. To support it in your test, you should use hypothesis_trio.stateful.TrioAsyncioRuleBasedStateMachine:
class CheckAsyncioLoop(TrioAsyncioRuleBasedStateMachine):
@initialize()
async def initialize(self):
assert self.get_asyncio_loop() == asyncio.get_event_loop()
await trio_asyncio.aio_as_trio(lambda: asyncio.sleep(0))
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file hypothesis-trio-0.6.0.tar.gz.
File metadata
- Download URL: hypothesis-trio-0.6.0.tar.gz
- Upload date:
- Size: 19.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.7.1 importlib_metadata/4.2.0 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.7.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d7ab108ac99758011b20f2448f1b1269375c68c1ffda9e4468600a4975ff955c
|
|
| MD5 |
f0cf91ba083b6ee91f3fe0460f8d4036
|
|
| BLAKE2b-256 |
2578007b68f95bba5854a99a106a2e2197478320a80c0abfa4c17d40d46c4b66
|
File details
Details for the file hypothesis_trio-0.6.0-py3-none-any.whl.
File metadata
- Download URL: hypothesis_trio-0.6.0-py3-none-any.whl
- Upload date:
- Size: 15.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.7.1 importlib_metadata/4.2.0 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.7.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3ac261dc6fcf3862d7d57ffa52d294539f8d807ac9483d58a8060df3c9e856fc
|
|
| MD5 |
26e73e711c8803abf5b2dce220f15673
|
|
| BLAKE2b-256 |
cf2bb22113f2076b5e733a2d69ba3e28397f42e09b884df69ecac1cfaa33e221
|