A library that allows you to easily mock out tests based on AWS infrastructure.
Alternatives To Moto
Project NameStarsDownloadsRepos Using ThisPackages Using ThisMost Recent CommitTotal ReleasesLatest ReleaseOpen IssuesLicenseLanguage
Awesome Aws11,531
2 days ago1December 21, 201565otherPython
A curated list of awesome Amazon Web Services (AWS) libraries, open source repos, guides, blogs, and other resources. Featuring the Fiery Meter of AWSome.
S3fs Fuse7,215
2 days ago4March 09, 2022219gpl-2.0C++
FUSE-based file system backed by Amazon S3
6 hours ago55apache-2.0Python
A library that allows you to easily mock out tests based on AWS infrastructure.
3 months ago82gpl-3.0Rust
Seed your development database with real data ⚡️
Wal E3,327
14a year ago33February 04, 202091bsd-3-clausePython
Continuous Archiving for Postgres
a year ago2mit
📫 A serverless email server on AWS using S3 and SES
Mountpoint S32,588
10 hours ago32apache-2.0Rust
A simple, high-throughput file client for mounting an Amazon S3 bucket as a local file system.
Wal G2,571
9 hours ago62March 16, 2022238otherGo
Archival and Restoration for databases in the Cloud
Mc2,4681515a day ago50April 22, 202139agpl-3.0Go
Simple | Fast tool to manage MinIO clusters :cloud:
Aws Sdk Js V32,40442721 hours ago156September 27, 2022365apache-2.0TypeScript
Modularized AWS SDK for JavaScript.
Alternatives To Moto
Select To Compare

Alternative Project Comparisons

Moto - Mock AWS Services

Join the chat at

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


$ 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): = name
        self.value = value

    def save(self):
        s3 = boto3.client("s3", region_name="us-east-1")
        s3.put_object(Bucket="mybucket",, 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

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
    model_instance = MyModel("steve", "is awesome")
    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.


The full documentation can be found here:

Financial Contributions

Support this project and continued development, by sponsoring us!

Click the Sponsor-button at the top of the page for more information.

Our finances are managed by OpenCollective, which means you have full visibility into all our contributions and expenses:

Security contact information

To report a security vulnerability, please use the Tidelift security contact. Tidelift will coordinate the fix and disclosure.

Popular Amazon Web Services Projects
Popular S3 Projects
Popular Cloud Computing Categories
Related Searches

Get A Weekly Email With Trending Projects For These Categories
No Spam. Unsubscribe easily at any time.
Amazon Web Services
Aws Ec2