Go to file
2023-11-16 07:09:54 -01:00
.devcontainer
.github Prep release 4.2.8 (#7016) 2023-11-10 21:44:59 -01:00
docs Prep release 4.2.8 (#7016) 2023-11-10 21:44:59 -01:00
moto Techdebt: Fix compatibility with botocore 1.32.1 (#7030) 2023-11-16 07:09:54 -01:00
other_langs Bump org.apache.maven.plugins:maven-surefire-plugin (#6981) 2023-11-02 18:25:02 -01:00
scripts Add new ELBv2 ssl protocols, add small helper script to fetch them (#7009) 2023-11-10 13:54:25 -01:00
tests ECS: Tagging is now supported for Tasks (#7029) 2023-11-15 21:23:41 -01:00
.coveragerc
.git-blame-ignore-revs
.gitignore
.gitmodules
.readthedocs.yaml Update .readthedocs.yaml 2021-11-03 21:01:49 -01:00
AUTHORS.md
CHANGELOG.md Post-release steps 2023-11-11 09:51:15 +00:00
CLOUDFORMATION_COVERAGE.md
CODE_OF_CONDUCT.md
codecov.yml Admin: Support Py 3.12 (#6966) 2023-10-30 19:01:03 -01:00
CONFIG_README.md
CONTRIBUTING.md
Dockerfile
IMPLEMENTATION_COVERAGE.md Prep release 4.2.8 (#7016) 2023-11-10 21:44:59 -01:00
ISSUE_TEMPLATE.md
LICENSE
Makefile
MANIFEST.in
pyproject.toml
README.md Update README.md (#6960) 2023-10-28 08:09:38 +00:00
requirements-dev.txt Introducing a new linter: ruff (#6752) 2023-09-03 06:16:24 +00:00
requirements-tests.txt Up openapi-spec-validator version; swith to pytest-order (#6943) 2023-10-23 21:42:34 +00:00
requirements.txt
ruff.toml
setup.cfg AWSLambda: Ensure simple backend does not require docker-module (#7000) 2023-11-07 21:48:26 -01:00
update_version_from_git.py

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 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", 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 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.