A simple plugin to use with pytest
Project description
pytest plugin providing a BDD ‘language’ for web app integration-testing.
Features
Implements a simple headless browser that requests web pages according to a URL mapping, parses web forms, and enables assertions about the various web responses using PyQuery selectors (similar to jQuery).
Example:
Feature: Homepage functionality Scenario: Homepage When the user requests list home Then response 0 status code is "200" And response 0 element "#main_title" contains 'Welcome' Scenario: User profile When the user requests view user_profile Then response 0 status code is "200" And response 0 element "tr:contains('Balance')" contains '45.67' And response 0 form-contains-array-outline <arrayfield> <arrayvalue> Examples: | arrayfield | arrayvalue | | choices | [0 2 3] |
Requires you to provide these fixtures:
client
url_mapping
client must implement get and post methods, compatible with Flask.test_client.
Example:
@pytest.fixture def app(): """Create, configure a new app instance for each test.""" "..." return app @pytest.fixture def client(app): return app.test_client()
url_mapping must be a dictionary, with keys of top-level “groups”, and values mapping a human-readable “action” to an absolute URL in your web app.
Example:
URL_MAPPING = { 'home': { 'list': '/', 'articles': '/latest/', }, 'user_profile': { 'view': '/user/profile/', 'update': '/user/profile/update', }, 'blog': { 'delete': '/blog/{}/delete', # {} gets filled from feature args }, }; @pytest.fixture def url_mapping(): return URL_MAPPING
Requirements
PyQuery, pytest-bdd, mechanize
Installation
You can install “pytest-bdd-web” via pip from PyPI:
$ pip install pytest-bdd-web
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-bdd-web” is free and open source software
Issues
If you encounter any problems, please file an issue along with a detailed description.
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_bdd_web-0.1.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 18c5d8621485681bbc92906ac0b36c9480cbe619777d5850cfb8344e9cc1dd91 |
|
MD5 | bbbae1a2458a527878e602a804e04b21 |
|
BLAKE2b-256 | fec2a466ae17f328415829543471c4543d1fe746301834b8ecf65298ba4be027 |