Go to file
2022-07-27 07:03:26 -03:00
.github/workflows S3 list_object_versions - ensure the prefix can contain a plus (#5097) 2022-05-05 11:06:31 +00:00
docs Add support for codebuild (#5282) 2022-07-14 15:57:04 +00:00
moto IOT: update thing group descriptions (#5298) 2022-07-27 07:03:26 -03:00
other_langs Added an example of using a moto server with Scala 2019-07-07 14:17:32 +03:00
scripts IAM - reduce filesize default policies (#5263) 2022-06-26 12:01:25 +00:00
tests IOT: update thing group descriptions (#5298) 2022-07-27 07:03:26 -03:00
.coveragerc
.gitignore
.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 Werkzeug - minimum version (#5176) 2022-05-28 09:34:23 +00:00
CHANGELOG.md Post-release steps 2022-06-27 10:46:59 +00:00
CODE_OF_CONDUCT.md
codecov.yml Refactor Class-decorator logic to reset per test (#4419) 2022-01-18 16:58:21 -01:00
CONFIG_README.md
CONTRIBUTING.md Refer to correct black version (#5038) 2022-04-19 22:18:28 +00:00
Dockerfile
IMPLEMENTATION_COVERAGE.md Add support for codebuild (#5282) 2022-07-14 15:57:04 +00:00
ISSUE_TEMPLATE.md
LICENSE
Makefile Refer to correct black version (#5038) 2022-04-19 22:18:28 +00:00
MANIFEST.in Admin - Extract MotoAPI functionality to dedicated module (#5055) 2022-04-24 11:03:04 +00:00
README.md Update README.md (#5141) 2022-05-16 16:59:53 +00:00
requirements-dev.txt upgrade black and unpin click (#5077) 2022-04-30 10:04:09 +00:00
requirements-tests.txt
requirements.txt
setup.cfg Admin - remove old dependencies/config (#5054) 2022-04-23 20:34:10 +00:00
setup.py Downgrade werkzeug (#5330) 2022-07-25 19:26:32 -03:00
update_version_from_git.py

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(object):
    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/