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
Built Distribution
Hashes for pytest_bravado-1.0.10-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bafbe49ff8a1669afbbf35f6c4f2258e28676f49a51e4165134bc6fd2754c7eb |
|
MD5 | 25a05b10c82b1f6ad73c5804de40b58c |
|
BLAKE2b-256 | 00dcd91a8410e9d502c2f648c75af0760898fa2704ac04e6677e351a00cb2090 |