Skip to main content
This is a pre-production deployment of Warehouse. Changes made here affect the production instance of PyPI (pypi.python.org).
Help us improve Python packaging - Donate today!

Pytest support for curio.

Project Description

curio code is written in the form of async/await, which makes it slightly more difficult to test using normal testing tools. pytest-curio provides useful fixtures and markers to make testing easier.

@pytest.mark.curio
async def test_some_curio_code():
    res = await library.do_something()
    assert b'expected result' == res

pytest-curio has been strongly influenced by pytest-asyncio.

Features

  • fixtures for creating and injecting versions of the curio kernel
  • fixtures for injecting unused tcp ports
  • pytest markers for treating tests as curio coroutines

Installation

To install pytest-curio, simply:

$ pip install pytest-curio

This is enough for pytest to pick up pytest-curio.

Fixtures

kernel

Creates and injects a new instance of the default curio kernel. The kernel will be stoped at the end of the test.

Note that just using the kernel fixture won’t make your test function a coroutine. You’ll need to interact with the kernel directly, using methods like kernel.run. See the pytest.mark.curio marker for treating test functions like coroutines.

def test_http_client(kernel):
    result = []
    async def my_coroutine(obj):
        result.append(obj)
    url = 'http://httpbin.org/get'
    task = kernel.run(my_coroutine(url))
    assert url in result

Markers

pytest.mark.curio

Mark your test coroutine with this marker and pytest will execute it as an curio task using the kernel provided by the kernel fixture. See the introductory section for an example.

Release History

Release History

This version
History Node

0.1.0

Download Files

Download Files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
pytest_curio-0.1.0-py3-none-any.whl (3.9 kB) Copy SHA256 Checksum SHA256 py3 Wheel Jan 12, 2016
pytest-curio-0.1.0.tar.gz (17.6 kB) Copy SHA256 Checksum SHA256 Source Jan 12, 2016

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting