Go to file
2021-11-15 08:11:59 -01:00
.github/workflows Run dependency tests daily 2021-11-14 13:02:05 -01:00
docs Prep 2.2.14 (#4569) 2021-11-13 15:17:40 -01:00
moto Remove six import (#4577) 2021-11-14 16:18:54 -08:00
other_langs Added an example of using a moto server with Scala 2019-07-07 14:17:32 +03:00
scripts Feature - @mock_all() (#3756) 2021-11-09 21:29:28 -01:00
tests S3 - Fix NoSuchKey-format (#4572) 2021-11-14 16:16:58 -01:00
.bumpversion.cfg Version 1.3.4 (#1757) 2018-08-07 10:53:21 -07:00
.coveragerc Introduce Github Actions to replace TravisCI (#3610) 2021-01-26 12:37:03 +00:00
.gitignore Clean up README, and distribute info over the external docs (#3728) 2021-11-08 11:02:46 -01:00
.readthedocs.yaml Update .readthedocs.yaml 2021-11-03 21:01:49 -01:00
AUTHORS.md S3 ListParts API: use MaxParts parameter (#3658) 2021-08-28 07:38:16 +01:00
CHANGELOG.md Update CHANGELOG.md 2021-11-14 12:41:41 -01:00
CODE_OF_CONDUCT.md Add docs on contributing and code of conduct. 2017-02-26 19:55:19 -05:00
codecov.yml Request matching - return known requests first (#3793) 2021-08-28 13:34:32 +01:00
CONFIG_README.md address PR comments 2020-09-21 17:42:44 -06:00
CONTRIBUTING.md Docs - Add Contributing Guide (#4543) 2021-11-08 22:04:44 -01:00
Dockerfile Update Dockerfile 2020-04-30 19:18:08 +02:00
IMPLEMENTATION_COVERAGE.md Prep 2.2.14 (#4569) 2021-11-13 15:17:40 -01:00
ISSUE_TEMPLATE.md Add docs on contributing and code of conduct. 2017-02-26 19:55:19 -05:00
LICENSE Add license. 2013-04-26 17:13:43 -04:00
Makefile Parallelize tests - Part 1 (#4368) 2021-10-05 17:11:07 +00:00
MANIFEST.in Add AWS ConfigService put_config_rule, delete_config_rule, describe_config_rule (#4171) 2021-08-21 05:45:52 +01:00
README.md Clean up README, and distribute info over the external docs (#3728) 2021-11-08 11:02:46 -01:00
requirements-dev.txt Implement sagemaker list_training_jobs enhancement (issue #4248) (#4256) 2021-09-02 13:45:47 +01:00
requirements-tests.txt Parallelize tests - Part 1 (#4368) 2021-10-05 17:11:07 +00:00
requirements.txt First stab at extracting deps in setup.py to extras 2020-09-03 09:23:53 +01:00
setup.cfg Techdebt: Enable pylint rules (#4432) 2021-10-18 19:44:29 +00:00
setup.py Remove more-itertools from install_requires (#4576) 2021-11-15 08:11:59 -01:00
tox.ini Port test suite from nose to pytest. 2020-11-10 08:23:44 +01:00
travis_moto_server.sh Parallelize tests - Part 1 (#4368) 2021-10-05 17:11:07 +00:00
update_version_from_git.py Add validity dates to IoT fakecert (#4093) 2021-07-27 08:59:01 +01:00
wait_for.py Use upstream TF test repo (#4163) 2021-08-12 16:55:53 +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(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/