A set of py.test fixtures to test Flask applications.
Project description
A set of pytest fixtures to test Flask extensions and applications.
Features
Plugin provides some fixtures to simplify app testing:
client - an instance of app.test_client,
client_class - client fixture for class-based tests,
config - the application config,
live_server - runs an application in the background (useful for tests with Selenium and other headless browsers),
request_ctx - the request context,
accept_json, accept_jsonp, accept_any - accept headers suitable to use as parameters in client.
To pass options to your application use the pytest.mark.options marker:
@pytest.mark.options(debug=False)
def test_app(app):
assert not app.debug, 'Ensure the app not in debug mode'
During tests execution the request context has been pushed, e.g. url_for, session and other context bound objects are available without context managers:
def test_app(client):
assert client.get(url_for('myview')).status_code == 200
Response object has a json property to test a view that returns a JSON response:
@api.route('/ping')
def ping():
return jsonify(ping='pong')
def test_api_ping(client):
res = client.get(url_for('api.ping'))
assert res.json == {'ping': 'pong'}
If you want your tests done via Selenium or other headless browser use the live_server fixture. The server’s URL can be retrieved using the url_for function:
from flask import url_for
@pytest.mark.usefixtures('live_server')
class TestLiveServer:
def test_server_is_up_and_running(self):
res = urllib2.urlopen(url_for('index', _external=True))
assert b'OK' in res.read()
assert res.code == 200
Quick Start
To start using a plugin define your application fixture in conftest.py:
from myapp import create_app
@pytest.fixture
def app():
app = create_app()
return app
Install the extension with dependencies and run your test suite:
$ pip install pytest-flask
$ py.test
Documentation
The latest documentation is available at http://pytest-flask.readthedocs.org/en/latest/.
Contributing
Don’t hesitate to create a GitHub issue for any bug or suggestion.
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
Hashes for pytest_flask-0.11.0-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fbf77a4ff2efdaa15d895af00625d8242f4bbdf10aceaefc9deb170bb7a45767 |
|
MD5 | f9a6d8b10681742dd56c758e19244cc4 |
|
BLAKE2b-256 | 1b707f323b4ffe0a3a30c0b46bc3ce117ff67b7152eafb82690cab049b089e8a |