pytest-chalice
pytest-chalice copied to clipboard
A set of py.test fixtures for AWS Chalice
============== pytest-chalice
.. image:: https://img.shields.io/pypi/v/pytest-chalice.svg :target: https://pypi.org/project/pytest-chalice :alt: PyPI version
.. image:: https://img.shields.io/pypi/pyversions/pytest-chalice.svg :target: https://pypi.org/project/pytest-chalice :alt: Python versions
.. image:: https://travis-ci.org/studio3104/pytest-chalice.svg?branch=master :target: https://travis-ci.org/studio3104/pytest-chalice :alt: See Build Status on Travis CI
A set of py.test fixtures for AWS Chalice
Features
- Launch the local gateway per test function
- Provide an abstracted client fixture to access the local gateway
- Expose an interface to overwrite response context with arbitrary objects
- As of Chalice version 1.8.0, LocalGateway object doesn't handle Cognito's context
- Not only for this purpose, it's an interface provided to allow custom contexts in unit tests
Requirements
pytest_Chalice_
Installation
You can install "pytest-chalice" via pip_ from PyPI_::
$ pip install pytest-chalice
Usage
.. code-block:: python
from chalice import Chalice
app = Chalice(__name__)
@app.route('/')
def index:
return {'hello': 'world'}
pytest-chalice expects a fixture called app which will be the chalice app instance from your project. You can create it in your conftest.py:
.. code-block:: python
import pytest
from chalice import Chalice
from project.app import app as chalice_app
@pytest.fixture
def app() -> Chalice:
return chalice_app
.. code-block:: python
from http import HTTPStatus
def test_index(client):
response = client.get('/')
assert response.status_code == HTTPStatus.OK
assert response.json == {'hello': 'world'}
See examples <https://github.com/studio3104/pytest-chalice/tree/master/examples>_ for more detailed
Contributing
Contributions are very welcome. Tests can be run with tox_, please ensure
the coverage at least stays the same before you submit a pull request.
License
Distributed under the terms of the MIT_ license, "pytest-chalice" is free and open source software
Issues
If you encounter any problems, please file an issue_ along with a detailed description.
.. _@hackebrot: https://github.com/hackebrot
.. _MIT: http://opensource.org/licenses/MIT
.. _BSD-3: http://opensource.org/licenses/BSD-3-Clause
.. _GNU GPL v3.0: http://www.gnu.org/licenses/gpl-3.0.txt
.. _Apache Software License 2.0: http://www.apache.org/licenses/LICENSE-2.0
.. _cookiecutter-pytest-plugin: https://github.com/pytest-dev/cookiecutter-pytest-plugin
.. _file an issue: https://github.com/studio3104/pytest-chalice/issues
.. _pytest: https://github.com/pytest-dev/pytest
.. _tox: https://tox.readthedocs.io/en/latest/
.. _pip: https://pypi.org/project/pip/
.. _PyPI: https://pypi.org/project
.. _Chalice: https://github.com/aws/chalice