Project Name | Stars | Downloads | Repos Using This | Packages Using This | Most Recent Commit | Total Releases | Latest Release | Open Issues | License | Language |
---|---|---|---|---|---|---|---|---|---|---|
Awesome Aws | 11,531 | 2 days ago | 1 | December 21, 2015 | 65 | other | Python | |||
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 Fuse | 7,215 | 2 days ago | 4 | March 09, 2022 | 219 | gpl-2.0 | C++ | |||
FUSE-based file system backed by Amazon S3 | ||||||||||
Moto | 6,863 | 6 hours ago | 55 | apache-2.0 | Python | |||||
A library that allows you to easily mock out tests based on AWS infrastructure. | ||||||||||
Replibyte | 3,512 | 3 months ago | 82 | gpl-3.0 | Rust | |||||
Seed your development database with real data ⚡️ | ||||||||||
Wal E | 3,327 | 14 | a year ago | 33 | February 04, 2020 | 91 | bsd-3-clause | Python | ||
Continuous Archiving for Postgres | ||||||||||
0x4447_product_s3_email | 2,905 | a year ago | 2 | mit | ||||||
📫 A serverless email server on AWS using S3 and SES | ||||||||||
Mountpoint S3 | 2,588 | 10 hours ago | 32 | apache-2.0 | Rust | |||||
A simple, high-throughput file client for mounting an Amazon S3 bucket as a local file system. | ||||||||||
Wal G | 2,571 | 9 hours ago | 62 | March 16, 2022 | 238 | other | Go | |||
Archival and Restoration for databases in the Cloud | ||||||||||
Mc | 2,468 | 15 | 15 | a day ago | 50 | April 22, 2021 | 39 | agpl-3.0 | Go | |
Simple | Fast tool to manage MinIO clusters :cloud: | ||||||||||
Aws Sdk Js V3 | 2,404 | 427 | 21 hours ago | 156 | September 27, 2022 | 365 | apache-2.0 | TypeScript | ||
Modularized AWS SDK for JavaScript. |
$ pip install 'moto[ec2,s3,all]'
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 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:
http://docs.getmoto.org/en/latest/
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: https://opencollective.com/moto
To report a security vulnerability, please use the Tidelift security contact. Tidelift will coordinate the fix and disclosure.