moto
A library that allows you to easily mock out tests based on AWS infrastructure
Install
moto on PyPI
pip
pip install motouv
uv add motopoetry
poetry add motoPackage facts
| License | Apache-2.0 (permissive) |
| Python support | supports the current Python release (>=3.10) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 7 — boto3, botocore, cryptography, requests, xmltodict, werkzeug, responses |
| Maintenance | actively maintained — 68 days since the last release |
| Last repo commit | |
| First released | |
| Popularity | one of the top 1,000 most-downloaded packages on PyPI (30-day window, as of 2026-08-13) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-13) |
Evidence: moto-5.2.2-py3-none-any.whl
Keywords: aws, ec2, s3, boto3, mock
About moto
from the package's own PyPI description — quoted content, verbatim
Moto - Mock AWS Services
Join the chat at https://gitter.im/awsmoto/Lobby (image)
Build Status (image) Coverage Status (image) Docs (image) PyPI (image) PyPI - Python Version (image) PyPI - Downloads (image) Code style: Ruff (image) Financial Contributors (image)
Install
$ pip install 'moto[ec2,s3,all]'
In a...
Read as markdown · JSON record · Source repository · Homepage · Docs
AI interpretation — verify before relying
AI-generated interpretation of the package facts above; every digit, version, license, or vulnerability id it cites is grounded in the facts already shown on this page
Moto mocks AWS services for testing, allowing you to test code that calls boto3 without hitting real AWS infrastructure. It intercepts boto3 calls and simulates AWS service behavior in memory.
Low friction installation with a pure-Python wheel. Active maintenance (last commit 2026-08-11, 68 days since release) and broad Python 3.10–3.14 support. Seven runtime dependencies are all well-established libraries.
Apache-2.0 is permissive; you may use, modify, and distribute moto freely in commercial and private projects, provided you include a copy of the license and state significant changes.
Usage
pip install moto
import boto3
from moto import mock_aws
@mock_aws
def test_s3():
s3 = boto3.client('s3', region_name='us-east-1')
s3.create_bucket(Bucket='test')
s3.put_object(Bucket='test', Key='file', Body=b'data')
obj = s3.get_object(Bucket='test', Key='file')
assert obj['Body'].read() == b'data'
Verdict: Moto is a mature, actively maintained testing library with no known vulnerabilities. It offers low-friction installation and broad Python version support (3.10–3.14). Apache-2.0 licensing is permissive. Ideal for unit and integration testing of AWS-dependent code without external service calls.
Needs verification
- Coverage of specific AWS services beyond S3 and EC2 (implementation coverage page referenced but not provided)
- Performance characteristics when mocking large-scale or complex AWS operations
- Community adoption metrics and real-world usage patterns
Similar packages
permissive · top 100 on PyPI
aiobotocorepermissive · top 100 on PyPI
aioboto3permissive · top 1,000 on PyPI
smart-openpermissive · top 1,000 on PyPI
types-s3transferpermissive · top 1,000 on PyPI
watchtowerpermissive · top 1,000 on PyPI
s3transferpermissive · top 100 on PyPI
responsespermissive · top 1,000 on PyPI
cloudpathlibpermissive · top 1,000 on PyPI
time-machinepermissive · top 1,000 on PyPI