moto-ext
A library that allows you to easily mock out tests based on AWS infrastructure
Decision gist · record as of 2026-08-14
Yes. Active maintenance, low friction, permissive license, and no known vulnerabilities make this a solid choice for local AWS testing. The fork's LocalStack patches add value if you use LocalStack; otherwise, consider whether the upstream Moto project better suits your needs.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.9 or later.
- Active maintenance with a release 4 days ago.
- Low install friction via a pure-Python wheel.
License · maintenance · safety
Apache-2.0 (permissive) — Licensed under Apache-2.0 (permissive), allowing use in commercial and proprietary projects with minimal restrictions.
last release 2026-08-10 (4 days) · last repo commit 2026-08-12 · 27 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 253,622 downloads/mo, #8,513 on PyPI
Alternatives
Verify before relying
pip install moto-ext
from moto import mock_s3
import boto3
@mock_s3
def test_s3():
client = boto3.client('s3', region_name='us-east-1')
client.create_bucket(Bucket='test-bucket')
response = client.list_buckets()
assert len(response['Buckets']) == 1- Whether all LocalStack patches are documented or discoverable compared to upstream Moto.
- Performance characteristics when mocking large numbers of AWS resources or complex state.
- Compatibility guarantees with specific AWS service versions or boto3 releases.
What it is and what it does
Moto-ext is a fork of Moto that mocks AWS services for local testing. It intercepts boto3 calls and simulates AWS behavior in-process, letting you test code that depends on AWS without provisioning real infrastructure or incurring costs. The fork includes patches tailored for LocalStack for AWS.
You use it by decorating test functions or context managers to enable mocking for specific services (S3, EC2, DynamoDB, etc.). Your boto3 client calls then hit the mock instead of AWS. It supports a broad surface of AWS services and maintains active development with recent releases.
Use it for
- Unit test code that reads/writes to S3 without creating real buckets or objects.
- Test EC2 instance lifecycle logic (launch, terminate, describe) in isolation.
- Mock DynamoDB tables and queries for rapid iteration on data layer code.
- Integration test multi-service workflows (e.g., Lambda triggering SNS) locally.
- Validate IAM policy logic and role assumptions before deployment.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes.
Active maintenance, low friction, permissive license, and no known vulnerabilities make this a solid choice for local AWS testing. The fork's LocalStack patches add value if you use LocalStack; otherwise, consider whether the upstream Moto project better suits your needs.
Install
moto-ext on PyPI
Before you install
Active maintenance with a release 4 days ago. Low install friction via a pure-Python wheel. Depends on boto3, botocore, and several common libraries (cryptography, requests, werkzeug, Jinja2, responses) that are widely used and well-maintained.
Requires Python 3.9 or later.
License in practice
Licensed under Apache-2.0 (permissive), allowing use in commercial and proprietary projects with minimal restrictions.
Quickstart
pip install moto-ext
from moto import mock_s3
import boto3
@mock_s3
def test_s3():
client = boto3.client('s3', region_name='us-east-1')
client.create_bucket(Bucket='test-bucket')
response = client.list_buckets()
assert len(response['Buckets']) == 1
Verify before relying
- Whether all LocalStack patches are documented or discoverable compared to upstream Moto.
- Performance characteristics when mocking large numbers of AWS resources or complex state.
- Compatibility guarantees with specific AWS service versions or boto3 releases.
Package facts
| License | Apache-2.0 permissive |
| Python support | Supports the current Python release >=3.9 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 9 packagesboto3botocorecryptographyrequestsxmltodictwerkzeugpython-dateutilresponsesJinja2 |
| Maintenance | Actively maintained 4 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 253,622 / month, #8,513 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Programming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Programming Language :: Python :: 3.9Topic :: Software Development :: Testing |
Evidence: moto_ext-5.1.45-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “aws mocking library”
- moto-extMocks AWS services for testing by intercepting boto3 calls, allowing…
- placeboPlacebo records and replays AWS API calls without hitting actual…
- aiomotoProvides async-compatible AWS service mocks for aiobotocore that…
Give your agent the search over MCP, or paste the wish link into any chat.
More Testing packages
Pluggy provides a plugin system that lets you define hook specifications and register implementations to be called in sequence, enabling extensible Python applications without tight coupling.
Install it if you're building an extensible application or framework.
pytest is a testing framework that lets you write test functions using plain assert statements and automatically discovers and runs them, with detailed failure reporting.
virtualenv creates isolated Python environments where packages can be installed independently without affecting the system Python or other projects.
Coverage.py measures which lines of Python code are executed during test runs, reporting coverage percentages and identifying untested code paths.
Install it if you want to measure test completeness or enforce coverage thresholds in your project.
pytest-asyncio is a pytest plugin that enables writing and running async test functions using the asyncio library, allowing developers to await code directly within test cases.
Install it if you write tests for any asyncio-based code.
A pytest plugin that generates test reports in Common Test Report Format (CTRF) as JSON, compatible with pytest-xdist and pytest-playwright for distributed and browser-based testing.
Install it if you need CTRF-formatted test output for CI/CD integration or cross-tool reporting.
See also aiomoto · localstack-client · moto · placebo · localstack · localstack-ext · terraform-local · mocket · responses · httmock