Go to file
2023-04-01 16:47:04 +00:00
.github Admin: DotNet example project (#6110) 2023-03-24 09:46:37 -01:00
docs Prep release 4.1.6 (#6132) 2023-03-26 13:54:36 +00:00
moto dynamodb AttributeUpdate ADD/PUT/DELETE for NS (#6138) 2023-04-01 16:47:04 +00:00
other_langs Combined Java Dependabot Updates (#6145) 2023-03-27 20:50:33 -07:00
scripts CloudFormation: Add coverage checklist (#6129) 2023-03-27 17:56:19 +01:00
tests dynamodb AttributeUpdate ADD/PUT/DELETE for NS (#6138) 2023-04-01 16:47:04 +00:00
.coveragerc Introduce Github Actions to replace TravisCI (#3610) 2021-01-26 12:37:03 +00:00
.git-blame-ignore-revs Ignore Black formatting commits in the blame view (#5664) 2022-11-16 17:51:34 -08:00
.gitignore Admin: DotNet example project (#6110) 2023-03-24 09:46:37 -01:00
.gitmodules Terraform Tests - update to latest TF branch (#5031) 2022-04-16 10:02:57 +00:00
.readthedocs.yaml Update .readthedocs.yaml 2021-11-03 21:01:49 -01:00
AUTHORS.md IOT: check if policy name already taken (#5352) 2022-08-02 19:45:46 +02:00
CHANGELOG.md Post-release steps 2023-03-26 16:31:12 +00:00
CLOUDFORMATION_COVERAGE.md CloudFormation, Logs: Resolve LogGroup physical id and attributes (#6125) 2023-03-28 13:17:56 +01:00
CODE_OF_CONDUCT.md Add docs on contributing and code of conduct. 2017-02-26 19:55:19 -05:00
codecov.yml Remove Py3.6 support (#5818) 2023-01-06 11:07:20 -01:00
CONFIG_README.md address PR comments 2020-09-21 17:42:44 -06:00
CONTRIBUTING.md Admin: Update Docs to point to getmoto (#5826) 2023-01-07 10:35:14 -01:00
Dockerfile Update Dockerfile 2020-04-30 19:18:08 +02:00
IMPLEMENTATION_COVERAGE.md EC2: Implement GetLaunchTemplateData (#6152) 2023-03-30 16:53:26 +01:00
ISSUE_TEMPLATE.md Add docs on contributing and code of conduct. 2017-02-26 19:55:19 -05:00
LICENSE
Makefile CloudFormation: Add coverage checklist (#6129) 2023-03-27 17:56:19 +01:00
MANIFEST.in SSM: Include default parameters at /aws/service/ecs/optimized-ami (#6008) 2023-03-04 11:36:00 -01:00
pyproject.toml Remove redundant wheel dep from pyproject.toml (#5832) 2023-01-11 19:44:34 -01:00
README.md Admin: Update Docs to point to getmoto (#5826) 2023-01-07 10:35:14 -01:00
requirements-dev.txt Move to pyproject.toml, instead of setup.py (#5821) 2023-01-06 18:43:16 -01:00
requirements-tests.txt Techdebt: skip tests when docker is not running (#6026) 2023-03-12 15:54:50 -01:00
requirements.txt First stab at extracting deps in setup.py to extras 2020-09-03 09:23:53 +01:00
setup.cfg Techdebt: MyPy ManagedBlockchain (#6134) 2023-03-27 18:00:24 +01:00
update_version_from_git.py Move to pyproject.toml, instead of setup.py (#5821) 2023-01-06 18:43:16 -01:00

Moto - Mock AWS Services

Join the chat at https://gitter.im/awsmoto/Lobby

Build Status Coverage Status Docs PyPI PyPI - Python Version PyPI - Downloads Code style: black

Install

$ pip install 'moto[ec2,s3,all]'

In a nutshell

Moto is a library that allows your tests to easily mock out AWS Services.

Imagine you have the following python code that you want to test:

import boto3


class MyModel:
    def __init__(self, name, value):
        self.name = name
        self.value = value

    def save(self):
        s3 = boto3.client("s3", region_name="us-east-1")
        s3.put_object(Bucket="mybucket", Key=self.name, Body=self.value)

Take a minute to think how you would have tested that in the past.

Now see how you could test it with Moto:

import boto3
from moto import mock_s3
from mymodule import MyModel


@mock_s3
def test_my_model_save():
    conn = boto3.resource("s3", region_name="us-east-1")
    # We need to create the bucket since this is all in Moto's 'virtual' AWS account
    conn.create_bucket(Bucket="mybucket")
    model_instance = MyModel("steve", "is awesome")
    model_instance.save()
    body = conn.Object("mybucket", "steve").get()["Body"].read().decode("utf-8")
    assert body == "is awesome"

With the decorator wrapping the test, all the calls to s3 are automatically mocked out. The mock keeps the state of the buckets and keys.

For a full list of which services and features are covered, please see our implementation coverage.

Documentation

The full documentation can be found here:

http://docs.getmoto.org/en/latest/