getmoto
moto
Python

A library that allows you to easily mock out tests based on AWS infrastructure.

Last updated Jul 8, 2026
8.6k
Stars
2.2k
Forks
35
Issues
+12
Stars/day
Attention Score
92
Language breakdown
No language data available.
โ–ธ Files click to expand
README

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: Ruff Financial Contributors

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", regi) 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_aws
from mymodule import MyModel

@mock_aws def testmymodel_save(): conn = boto3.resource("s3", regi) # 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 track of 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/

Financial Contributions

Support this project and its 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: https://opencollective.com/moto

Security contact information

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

ยฉ 2026 GitRepoTrend ยท getmoto/moto ยท Updated daily from GitHub