Automatically mocks resources from serverless.yml file.
Project description
pytest-serverless
Mock local resources for serverless framework.
master | PyPI | Python | pytest | Licence |
---|---|---|---|---|
3.10.1 , 4.6.6 , 5.2.4 |
Installation
pip install pytest-serverless
Your project has to have pytest
installed.
What problem it tries to solve?
When building your project with serverless most likely you will create resources like dynamodb tables, sqs queues, sns topics.
During writing tests you will have to mock those in moto.
This pytest plugin tries to automate this process by reading serverless.yml
file and create
moto mocks of resources for you.
Usage
Assuming your serverless.yml
file looks like:
service: my-microservice
resources:
Resources:
TableA:
Type: 'AWS::DynamoDB::Table'
DeletionPolicy: Delete
Properties:
TableName: ${self:service}.my-table
AttributeDefinitions:
- AttributeName: id
AttributeType: S
- AttributeName: company_id
AttributeType: S
KeySchema:
- AttributeName: id
KeyType: HASH
GlobalSecondaryIndexes:
- IndexName: company_id
KeySchema:
- AttributeName: company_id
KeyType: HASH
Projection:
ProjectionType: ALL
ProvisionedThroughput:
ReadCapacityUnits: 10
WriteCapacityUnits: 30
ProvisionedThroughput:
ReadCapacityUnits: 10
WriteCapacityUnits: 30
To start using my-microservice.my-table
table in your tests just mark your test with @pytest.mark.usefixtures("serverless")
, and rest will be done by plugin.
import boto3
import pytest
@pytest.mark.usefixtures("serverless")
def test():
table = boto3.resource("dynamodb").Table("my-microservice.my-table")
count_of_items = len(table.scan()["Items"])
assert count_of_items == 0
Supported resources
AWS::DynamoDB::Table
AWS::SQS::Queue
Issues?
Plugin is in early stage of development, so you might find some bugs or missing functionality.
If possible create pull request (with tests) that fixes particular problem.
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_serverless-0.8.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 25cae32608a9d3000c594ca02748598f12c2001cd4605552dade2a8e416fed71 |
|
MD5 | 71a283c57424d6ddb94637256b4587a6 |
|
BLAKE2b-256 | 30d89139dd94910b352ac688e6ecd1082ffd64720f8d9524f3d5caa75b1cd5d4 |