Pytest-bravado automatically generates from OpenAPI specification client fixtures.
Project description
Pytest-bravado automatically generates client fixtures from OpenAPI specification. Bravado documentation.
Installation
To install pytest-bravado via pip run the following command:
pip install pytest-bravado
Example Usage
Simple tests:
import pytest @pytest.mark.parametrize('getUser', [{'id': 1}], indirect=True) def test_get_user(getUser): assert getUser.result @pytest.mark.parametrize('createUser', [{'id': 2, 'username': 'Ivan'}], indirect=True) def test_create_user(createUser, getUser): assert getUser(id=2).response().result
Support openapi example:
If there is an instance in the specifics, it will be used as the default request body.
parameters: - in: "body" name: "body" schema: $ref: "#/definitions/User" example: id: 10 username: Oleg
import pytest def test_create_user(createUser): assert createUser.response().result
request body:
{'id': 10, 'username': 'Oleg'}
You can use mark parametrize to change all or part of the example.
@pytest.mark.parametrize('createUser', [{'username': 'Ivan'}], indirect=True) def test_create_user(createUser): assert createUser.result
request body:
{'id': 10, 'username': 'Ivan'}
Run:
pytest --swagger_url http://user-service.com/swagger.json
Spec example:
swagger: "2.0" info: version: "1.0.0" title: "User service" host: "user-service.com" schemes: - "http" paths: /user{id}: get: operationId: "getUser" parameters: - in: "path" name: "id" required: true type: "integer" responses: default: description: "successful" schema: $ref: "#/definitions/User" /createUser: post: operationId: "createUser" produces: - "application/json" parameters: - in: "body" name: "body" schema: $ref: "#/definitions/User" example: id: 10 username: Oleg responses: default: description: "successful" definitions: User: type: "object" properties: id: type: "integer" username: type: "string"
The following flags are supported
- –swagger_url - openapi spec url
- –request_headers - request headers
- –not_validate_responses - not validate incoming responses
- –not_validate_requests - not validate outgoing requests
- –not_validate_swagger_spec - not validate the swagger spec
- –not_use_models - not use models (Python classes) instead of dicts for #/definitions/{models}
- –enable_fallback_results - use fallback results even if they’re provided
- –response_metadata_class - What class to use for response metadata
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
pytest-bravado-1.0.10.tar.gz
(3.6 kB
view hashes)
Built Distribution
Close
Hashes for pytest_bravado-1.0.10-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bafbe49ff8a1669afbbf35f6c4f2258e28676f49a51e4165134bc6fd2754c7eb |
|
MD5 | 25a05b10c82b1f6ad73c5804de40b58c |
|
BLAKE2-256 | 00dcd91a8410e9d502c2f648c75af0760898fa2704ac04e6677e351a00cb2090 |