Admin: Update Docs to point to getmoto (#5826)
This commit is contained in:
parent
79a0b9070b
commit
27a2e42d9b
8
.github/workflows/build.yml
vendored
8
.github/workflows/build.yml
vendored
@ -108,7 +108,7 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
make test-only
|
make test-only
|
||||||
- name: "Upload coverage to Codecov"
|
- name: "Upload coverage to Codecov"
|
||||||
if: ${{ github.repository == 'spulec/moto'}}
|
if: ${{ github.repository == 'getmoto/moto'}}
|
||||||
uses: codecov/codecov-action@v3
|
uses: codecov/codecov-action@v3
|
||||||
with:
|
with:
|
||||||
fail_ci_if_error: false
|
fail_ci_if_error: false
|
||||||
@ -158,7 +158,7 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
make test-only
|
make test-only
|
||||||
- name: "Upload coverage to Codecov"
|
- name: "Upload coverage to Codecov"
|
||||||
if: ${{ github.repository == 'spulec/moto'}}
|
if: ${{ github.repository == 'getmoto/moto'}}
|
||||||
uses: codecov/codecov-action@v3
|
uses: codecov/codecov-action@v3
|
||||||
with:
|
with:
|
||||||
fail_ci_if_error: false
|
fail_ci_if_error: false
|
||||||
@ -183,7 +183,7 @@ jobs:
|
|||||||
name: Deploy
|
name: Deploy
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
needs: [test, testserver ]
|
needs: [test, testserver ]
|
||||||
if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' && github.repository == 'spulec/moto' }}
|
if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' && github.repository == 'getmoto/moto' }}
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
python-version: [3.8]
|
python-version: [3.8]
|
||||||
@ -270,7 +270,7 @@ jobs:
|
|||||||
fi
|
fi
|
||||||
- name: Leave PR comment with Moto version
|
- name: Leave PR comment with Moto version
|
||||||
uses: peter-evans/create-or-update-comment@v1
|
uses: peter-evans/create-or-update-comment@v1
|
||||||
if: env.pr_found == 'true' && env.pr_repo == 'spulec/moto'
|
if: env.pr_found == 'true' && env.pr_repo == 'getmoto/moto'
|
||||||
with:
|
with:
|
||||||
issue-number: ${{ env.pr_nr }}
|
issue-number: ${{ env.pr_nr }}
|
||||||
body: |
|
body: |
|
||||||
|
@ -1437,7 +1437,7 @@ Docker Digest for 3.0.4: _sha256:320e1d2ab89729d5580dbe08d8c2153a28db4c28023c577
|
|||||||
-----
|
-----
|
||||||
General:
|
General:
|
||||||
* The mock_dynamodb and mock_rds-decorators have been deprecated, and will be repurposed in a later release.
|
* The mock_dynamodb and mock_rds-decorators have been deprecated, and will be repurposed in a later release.
|
||||||
Please see https://github.com/spulec/moto/issues/4526 for more information.
|
Please see https://github.com/getmoto/moto/issues/4526 for more information.
|
||||||
|
|
||||||
New Methods:
|
New Methods:
|
||||||
* API Gateway:
|
* API Gateway:
|
||||||
@ -2339,7 +2339,7 @@ Docker Digest for 3.0.4: _sha256:320e1d2ab89729d5580dbe08d8c2153a28db4c28023c577
|
|||||||
2.0.0
|
2.0.0
|
||||||
----
|
----
|
||||||
Full list of PRs merged in this release:
|
Full list of PRs merged in this release:
|
||||||
https://github.com/spulec/moto/pulls?q=is%3Apr+is%3Aclosed+merged%3A2020-09-07..2021-02-23
|
https://github.com/getmoto/moto/pulls?q=is%3Apr+is%3Aclosed+merged%3A2020-09-07..2021-02-23
|
||||||
|
|
||||||
General Changes:
|
General Changes:
|
||||||
* When installing, it is now required to specify the service you want to use:
|
* When installing, it is now required to specify the service you want to use:
|
||||||
@ -2530,7 +2530,7 @@ https://github.com/spulec/moto/pulls?q=is%3Apr+is%3Aclosed+merged%3A2020-09-07..
|
|||||||
1.3.16
|
1.3.16
|
||||||
-----
|
-----
|
||||||
Full list of PRs merged in this release:
|
Full list of PRs merged in this release:
|
||||||
https://github.com/spulec/moto/pulls?q=is%3Apr+is%3Aclosed+merged%3A2019-11-14..2020-09-07
|
https://github.com/getmoto/moto/pulls?q=is%3Apr+is%3Aclosed+merged%3A2019-11-14..2020-09-07
|
||||||
|
|
||||||
|
|
||||||
General Changes:
|
General Changes:
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
|
|
||||||
# Contributing code
|
# Contributing code
|
||||||
|
|
||||||
Moto has a [Code of Conduct](https://github.com/spulec/moto/blob/master/CODE_OF_CONDUCT.md), you can expect to be treated with respect at all times when interacting with this project.
|
Moto has a [Code of Conduct](https://github.com/getmoto/moto/blob/master/CODE_OF_CONDUCT.md), you can expect to be treated with respect at all times when interacting with this project.
|
||||||
|
|
||||||
# Development Guide
|
# Development Guide
|
||||||
Please see our documentation for information on how to contribute:
|
Please see our documentation for information on how to contribute:
|
||||||
@ -33,7 +33,7 @@ Use `make format` to automatically format your code, if it does not conform to `
|
|||||||
## Releasing a new version of Moto
|
## Releasing a new version of Moto
|
||||||
|
|
||||||
* Ensure the CHANGELOG document mentions the new release, and lists all significant changes.
|
* Ensure the CHANGELOG document mentions the new release, and lists all significant changes.
|
||||||
* Go to the dedicated [Release Action](https://github.com/spulec/moto/actions/workflows/release.yml) in our CI
|
* Go to the dedicated [Release Action](https://github.com/getmoto/moto/actions/workflows/release.yml) in our CI
|
||||||
* Click 'Run workflow' on the top right
|
* Click 'Run workflow' on the top right
|
||||||
* Provide the version you want to release
|
* Provide the version you want to release
|
||||||
* That's it - everything else is automated.
|
* That's it - everything else is automated.
|
||||||
|
@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
[](https://gitter.im/awsmoto/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
|
[](https://gitter.im/awsmoto/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
|
||||||
|
|
||||||
[](https://github.com/spulec/moto/actions)
|
[](https://github.com/getmoto/moto/actions)
|
||||||
[](https://codecov.io/gh/spulec/moto)
|
[](https://codecov.io/gh/getmoto/moto)
|
||||||
[](http://docs.getmoto.org)
|
[](http://docs.getmoto.org)
|
||||||
[](https://pypi.org/project/moto/)
|
[](https://pypi.org/project/moto/)
|
||||||
[](#)
|
[](#)
|
||||||
@ -61,7 +61,7 @@ def test_my_model_save():
|
|||||||
|
|
||||||
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.
|
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](https://github.com/spulec/moto/blob/master/IMPLEMENTATION_COVERAGE.md).
|
For a full list of which services and features are covered, please see our [implementation coverage](https://github.com/getmoto/moto/blob/master/IMPLEMENTATION_COVERAGE.md).
|
||||||
|
|
||||||
|
|
||||||
### Documentation
|
### Documentation
|
||||||
|
@ -109,7 +109,7 @@ The aggregation and non-aggregation querying can and should just use the same ov
|
|||||||
1. Non-aggregated listing will specify the region-name of the resource backend `backend_region`
|
1. Non-aggregated listing will specify the region-name of the resource backend `backend_region`
|
||||||
1. Aggregated listing will need to be able to list resource types across ALL backends and filter optionally by passing in `resource_region`.
|
1. Aggregated listing will need to be able to list resource types across ALL backends and filter optionally by passing in `resource_region`.
|
||||||
|
|
||||||
An example of a working implementation of this is `S3 <https://github.com/spulec/moto/blob/master/moto/s3/config.py>`_.
|
An example of a working implementation of this is `S3 <https://github.com/getmoto/moto/blob/master/moto/s3/config.py>`_.
|
||||||
|
|
||||||
Pagination should generally be able to pull out the resource across any region so should be sharded by `region-item-name` -- not done for S3
|
Pagination should generally be able to pull out the resource across any region so should be sharded by `region-item-name` -- not done for S3
|
||||||
because S3 has a globally unique name space.
|
because S3 has a globally unique name space.
|
||||||
@ -131,4 +131,4 @@ return for it.
|
|||||||
When implementing resource config fetching, you will need to return at a minimum `None` if the resource is not found, or a `dict` that looks
|
When implementing resource config fetching, you will need to return at a minimum `None` if the resource is not found, or a `dict` that looks
|
||||||
like what AWS Config would return.
|
like what AWS Config would return.
|
||||||
|
|
||||||
It's recommended to read the comment for the `ConfigQueryModel` 's `get_config_resource` function in `the base class <https://github.com/spulec/moto/blob/master/moto/core/models.py>`_.
|
It's recommended to read the comment for the `ConfigQueryModel` 's `get_config_resource` function in `the base class <https://github.com/getmoto/moto/blob/master/moto/core/models.py>`_.
|
@ -23,4 +23,4 @@ Create the PR anyway! Others can use your work and build on it to finish the fea
|
|||||||
.. note:: You can indicate a PR that's not quite ready with the `needs-help`-label.
|
.. note:: You can indicate a PR that's not quite ready with the `needs-help`-label.
|
||||||
|
|
||||||
Are you not sure on what you want to implement, or want some advice on how to approach things?
|
Are you not sure on what you want to implement, or want some advice on how to approach things?
|
||||||
Feel free to open a new issue on Github: https://github.com/spulec/moto/issues
|
Feel free to open a new issue on Github: https://github.com/getmoto/moto/issues
|
||||||
|
@ -19,7 +19,7 @@ If you don't care about the number of dependencies, or if you want to mock many
|
|||||||
|
|
||||||
If you want to install ``moto`` from source::
|
If you want to install ``moto`` from source::
|
||||||
|
|
||||||
git clone git://github.com/spulec/moto.git
|
git clone git://github.com/getmoto/moto.git
|
||||||
cd moto
|
cd moto
|
||||||
pip install '.[all]'
|
pip install '.[all]'
|
||||||
|
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
IAM-like Access Control
|
IAM-like Access Control
|
||||||
=======================
|
=======================
|
||||||
|
|
||||||
Moto also has the ability to authenticate and authorize actions, just like it's done by IAM in AWS. This functionality can be enabled by either setting the `INITIAL_NO_AUTH_ACTION_COUNT` environment variable or using the `set_initial_no_auth_action_count` decorator. Note that the current implementation is very basic, see `the source code <https://github.com/spulec/moto/blob/master/moto/iam/access_control.py>`_ for more information.
|
Moto also has the ability to authenticate and authorize actions, just like it's done by IAM in AWS. This functionality can be enabled by either setting the `INITIAL_NO_AUTH_ACTION_COUNT` environment variable or using the `set_initial_no_auth_action_count` decorator. Note that the current implementation is very basic, see `the source code <https://github.com/getmoto/moto/blob/master/moto/iam/access_control.py>`_ for more information.
|
||||||
|
|
||||||
`INITIAL_NO_AUTH_ACTION_COUNT`
|
`INITIAL_NO_AUTH_ACTION_COUNT`
|
||||||
------------------------------
|
------------------------------
|
||||||
@ -44,4 +44,4 @@ This is a decorator that works similarly to the environment variable, but the se
|
|||||||
assert len(instances) == 0
|
assert len(instances) == 0
|
||||||
|
|
||||||
|
|
||||||
See `the related test suite <https://github.com/spulec/moto/blob/master/tests/test_core/test_auth.py>`_ for more examples.
|
See `the related test suite <https://github.com/getmoto/moto/blob/master/tests/test_core/test_auth.py>`_ for more examples.
|
||||||
|
@ -232,8 +232,8 @@ For the above services, this is required because the hostname is in the form of
|
|||||||
As a result, you need to add that entry to your host file for your tests to function properly.
|
As a result, you need to add that entry to your host file for your tests to function properly.
|
||||||
|
|
||||||
|
|
||||||
.. _Java: https://github.com/spulec/moto/blob/master/other_langs/sqsSample.java
|
.. _Java: https://github.com/getmoto/moto/blob/master/other_langs/sqsSample.java
|
||||||
.. _Ruby: https://github.com/spulec/moto/blob/master/other_langs/test.rb
|
.. _Ruby: https://github.com/getmoto/moto/blob/master/other_langs/test.rb
|
||||||
.. _Javascript: https://github.com/spulec/moto/blob/master/other_langs/test.js
|
.. _Javascript: https://github.com/getmoto/moto/blob/master/other_langs/test.js
|
||||||
.. _Homebrew: https://brew.sh
|
.. _Homebrew: https://brew.sh
|
||||||
.. _Terraform Docs: https://registry.terraform.io/providers/hashicorp/aws/latest/docs/guides/custom-service-endpoints
|
.. _Terraform Docs: https://registry.terraform.io/providers/hashicorp/aws/latest/docs/guides/custom-service-endpoints
|
||||||
|
@ -22,8 +22,8 @@ Additional Resources
|
|||||||
* `Moto Issue Tracker`_
|
* `Moto Issue Tracker`_
|
||||||
|
|
||||||
.. _AWS infrastructure: http://aws.amazon.com/
|
.. _AWS infrastructure: http://aws.amazon.com/
|
||||||
.. _Moto Issue Tracker: https://github.com/spulec/moto/issues
|
.. _Moto Issue Tracker: https://github.com/getmoto/moto/issues
|
||||||
.. _Moto Source Repository: https://github.com/spulec/moto
|
.. _Moto Source Repository: https://github.com/getmoto/moto
|
||||||
|
|
||||||
.. toctree::
|
.. toctree::
|
||||||
:maxdepth: 2
|
:maxdepth: 2
|
||||||
|
@ -103,7 +103,7 @@ def not_implemented_callback(
|
|||||||
|
|
||||||
|
|
||||||
# Modify behaviour of the matcher to only/always return the first match
|
# Modify behaviour of the matcher to only/always return the first match
|
||||||
# Default behaviour is to return subsequent matches for subsequent requests, which leads to https://github.com/spulec/moto/issues/2567
|
# Default behaviour is to return subsequent matches for subsequent requests, which leads to https://github.com/getmoto/moto/issues/2567
|
||||||
# - First request matches on the appropriate S3 URL
|
# - First request matches on the appropriate S3 URL
|
||||||
# - Same request, executed again, will be matched on the subsequent match, which happens to be the catch-all, not-yet-implemented, callback
|
# - Same request, executed again, will be matched on the subsequent match, which happens to be the catch-all, not-yet-implemented, callback
|
||||||
# Fix: Always return the first match
|
# Fix: Always return the first match
|
||||||
|
@ -54,7 +54,7 @@ def dynamo_json_dump(dynamo_object):
|
|||||||
return json.dumps(dynamo_object, cls=DynamoJsonEncoder)
|
return json.dumps(dynamo_object, cls=DynamoJsonEncoder)
|
||||||
|
|
||||||
|
|
||||||
# https://github.com/spulec/moto/issues/1874
|
# https://github.com/getmoto/moto/issues/1874
|
||||||
# Ensure that the total size of an item does not exceed 400kb
|
# Ensure that the total size of an item does not exceed 400kb
|
||||||
class LimitedSizeDict(dict):
|
class LimitedSizeDict(dict):
|
||||||
def __init__(self, *args, **kwargs):
|
def __init__(self, *args, **kwargs):
|
||||||
|
@ -520,7 +520,7 @@ class MotoNotImplementedError(NotImplementedError):
|
|||||||
super().__init__(
|
super().__init__(
|
||||||
f"{blurb} has not been implemented in Moto yet."
|
f"{blurb} has not been implemented in Moto yet."
|
||||||
" Feel free to open an issue at"
|
" Feel free to open an issue at"
|
||||||
" https://github.com/spulec/moto/issues"
|
" https://github.com/getmoto/moto/issues"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@ -6,7 +6,7 @@ class General(BaseResponse):
|
|||||||
instance_id = self._get_param("InstanceId")
|
instance_id = self._get_param("InstanceId")
|
||||||
if not instance_id:
|
if not instance_id:
|
||||||
# For compatibility with boto.
|
# For compatibility with boto.
|
||||||
# See: https://github.com/spulec/moto/pull/1152#issuecomment-332487599
|
# See: https://github.com/getmoto/moto/pull/1152#issuecomment-332487599
|
||||||
instance_id = self._get_multi_param("InstanceId")[0]
|
instance_id = self._get_multi_param("InstanceId")[0]
|
||||||
|
|
||||||
instance = self.ec2_backend.get_instance(instance_id)
|
instance = self.ec2_backend.get_instance(instance_id)
|
||||||
|
@ -229,7 +229,7 @@ class InstanceResponse(EC2BaseResponse):
|
|||||||
msg = (
|
msg = (
|
||||||
"This specific call to ModifyInstanceAttribute has not been"
|
"This specific call to ModifyInstanceAttribute has not been"
|
||||||
" implemented in Moto yet. Feel free to open an issue at"
|
" implemented in Moto yet. Feel free to open an issue at"
|
||||||
" https://github.com/spulec/moto/issues"
|
" https://github.com/getmoto/moto/issues"
|
||||||
)
|
)
|
||||||
raise NotImplementedError(msg)
|
raise NotImplementedError(msg)
|
||||||
|
|
||||||
|
@ -427,7 +427,7 @@ def passes_filter_dict(instance, filter_dict):
|
|||||||
return False
|
return False
|
||||||
else:
|
else:
|
||||||
raise NotImplementedError(
|
raise NotImplementedError(
|
||||||
"Filter dicts have not been implemented in Moto for '%s' yet. Feel free to open an issue at https://github.com/spulec/moto/issues"
|
"Filter dicts have not been implemented in Moto for '%s' yet. Feel free to open an issue at https://github.com/getmoto/moto/issues"
|
||||||
% filter_name
|
% filter_name
|
||||||
)
|
)
|
||||||
return True
|
return True
|
||||||
@ -473,7 +473,7 @@ def passes_igw_filter_dict(igw, filter_dict):
|
|||||||
return False
|
return False
|
||||||
else:
|
else:
|
||||||
raise NotImplementedError(
|
raise NotImplementedError(
|
||||||
"Internet Gateway filter dicts have not been implemented in Moto for '%s' yet. Feel free to open an issue at https://github.com/spulec/moto/issues",
|
"Internet Gateway filter dicts have not been implemented in Moto for '%s' yet. Feel free to open an issue at https://github.com/getmoto/moto/issues",
|
||||||
filter_name,
|
filter_name,
|
||||||
)
|
)
|
||||||
return True
|
return True
|
||||||
|
@ -176,9 +176,9 @@
|
|||||||
<h4 class="modal-title" id="myModalLabel">About Moto</h4>
|
<h4 class="modal-title" id="myModalLabel">About Moto</h4>
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
<p>Moto was created by <a href="https://twitter.com/spulec">Steve Pulec</a> and <a href="https://github.com/spulec/moto/blob/master/AUTHORS.md">many other contributors</a>.</p>
|
<p>Moto was created by <a href="https://twitter.com/spulec">Steve Pulec</a> and <a href="https://github.com/getmoto/moto/blob/master/AUTHORS.md">many other contributors</a>.</p>
|
||||||
|
|
||||||
<p>Please open any issues <a href="https://github.com/spulec/moto/issues">here</a>.</p>
|
<p>Please open any issues <a href="https://github.com/getmoto/moto/issues">here</a>.</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -200,7 +200,7 @@ def _validate_uuid(uuid):
|
|||||||
|
|
||||||
# For unknown reasons I cannot use the service name "redshift-data" as I should
|
# For unknown reasons I cannot use the service name "redshift-data" as I should
|
||||||
# It seems boto3 is unable to get the list of available regions for "redshift-data"
|
# It seems boto3 is unable to get the list of available regions for "redshift-data"
|
||||||
# See code here https://github.com/spulec/moto/blob/master/moto/core/utils.py#L407
|
# See code here https://github.com/getmoto/moto/blob/master/moto/core/utils.py#L407
|
||||||
# sess.get_available_regions("redshift-data") returns an empty list
|
# sess.get_available_regions("redshift-data") returns an empty list
|
||||||
# Then I use the service redshift since they share the same regions
|
# Then I use the service redshift since they share the same regions
|
||||||
# See https://docs.aws.amazon.com/general/latest/gr/redshift-service.html
|
# See https://docs.aws.amazon.com/general/latest/gr/redshift-service.html
|
||||||
|
@ -642,7 +642,7 @@ class SNSBackend(BaseBackend):
|
|||||||
group_id=None,
|
group_id=None,
|
||||||
):
|
):
|
||||||
if subject is not None and len(subject) > 100:
|
if subject is not None and len(subject) > 100:
|
||||||
# Note that the AWS docs around length are wrong: https://github.com/spulec/moto/issues/1503
|
# Note that the AWS docs around length are wrong: https://github.com/getmoto/moto/issues/1503
|
||||||
raise ValueError("Subject must be less than 100 characters")
|
raise ValueError("Subject must be less than 100 characters")
|
||||||
|
|
||||||
if phone_number:
|
if phone_number:
|
||||||
|
@ -21,7 +21,7 @@ main() {
|
|||||||
# Commit an updated IMPLEMENTATION_COVERAGE.md
|
# Commit an updated IMPLEMENTATION_COVERAGE.md
|
||||||
make implementation_coverage || true
|
make implementation_coverage || true
|
||||||
# Open a PR
|
# Open a PR
|
||||||
open https://github.com/spulec/moto/compare/master...version-${version}
|
open https://github.com/getmoto/moto/compare/master...version-${version}
|
||||||
}
|
}
|
||||||
|
|
||||||
main $@
|
main $@
|
||||||
|
@ -60,7 +60,7 @@ def main():
|
|||||||
# Ensure we use the correct US-west availability zones
|
# Ensure we use the correct US-west availability zones
|
||||||
# There are only two - for some accounts they are called us-west-1b and us-west-1c
|
# There are only two - for some accounts they are called us-west-1b and us-west-1c
|
||||||
# As our EC2-module assumes us-west-1a and us-west-1b, we may have to rename the zones coming from AWS
|
# As our EC2-module assumes us-west-1a and us-west-1b, we may have to rename the zones coming from AWS
|
||||||
# https://github.com/spulec/moto/issues/5494
|
# https://github.com/getmoto/moto/issues/5494
|
||||||
if region == "us-west-1" and location_type == "availability-zone":
|
if region == "us-west-1" and location_type == "availability-zone":
|
||||||
zones = set([i["Location"] for i in instances])
|
zones = set([i["Location"] for i in instances])
|
||||||
if zones == {"us-west-1b", "us-west-1c"}:
|
if zones == {"us-west-1b", "us-west-1c"}:
|
||||||
|
@ -5,7 +5,7 @@ long_description = file:README.md
|
|||||||
long_description_content_type = text/markdown
|
long_description_content_type = text/markdown
|
||||||
author = Steve Pulec
|
author = Steve Pulec
|
||||||
author_email = "spulec@gmail.com"
|
author_email = "spulec@gmail.com"
|
||||||
url = https://github.com/spulec/moto
|
url = https://github.com/getmoto/moto
|
||||||
license = Apache License 2.0
|
license = Apache License 2.0
|
||||||
test_suite = tests
|
test_suite = tests
|
||||||
classifiers =
|
classifiers =
|
||||||
@ -20,8 +20,8 @@ classifiers =
|
|||||||
keywords = aws ec2 s3 boto3 mock
|
keywords = aws ec2 s3 boto3 mock
|
||||||
project_urls =
|
project_urls =
|
||||||
Documentation = http://docs.getmoto.org/en/latest/
|
Documentation = http://docs.getmoto.org/en/latest/
|
||||||
Issue tracker = https://github.com/spulec/moto/issues
|
Issue tracker = https://github.com/getmoto/moto/issues
|
||||||
Changelog = https://github.com/spulec/moto/blob/master/CHANGELOG.md
|
Changelog = https://github.com/getmoto/moto/blob/master/CHANGELOG.md
|
||||||
|
|
||||||
[options]
|
[options]
|
||||||
python_requires = >=3.7
|
python_requires = >=3.7
|
||||||
|
@ -108,7 +108,7 @@ def test_submit_job():
|
|||||||
job_id = resp["jobId"]
|
job_id = resp["jobId"]
|
||||||
|
|
||||||
# Test that describe_jobs() returns 'createdAt'
|
# Test that describe_jobs() returns 'createdAt'
|
||||||
# github.com/spulec/moto/issues/4364
|
# github.com/getmoto/moto/issues/4364
|
||||||
resp = batch_client.describe_jobs(jobs=[job_id])
|
resp = batch_client.describe_jobs(jobs=[job_id])
|
||||||
created_at = resp["jobs"][0]["createdAt"]
|
created_at = resp["jobs"][0]["createdAt"]
|
||||||
created_at.should.be.greater_than(start_time_milliseconds)
|
created_at.should.be.greater_than(start_time_milliseconds)
|
||||||
@ -127,7 +127,7 @@ def test_submit_job():
|
|||||||
[event["message"] for event in resp["events"]].should.equal(["hello"])
|
[event["message"] for event in resp["events"]].should.equal(["hello"])
|
||||||
|
|
||||||
# Test that describe_jobs() returns timestamps in milliseconds
|
# Test that describe_jobs() returns timestamps in milliseconds
|
||||||
# github.com/spulec/moto/issues/4364
|
# github.com/getmoto/moto/issues/4364
|
||||||
job = batch_client.describe_jobs(jobs=[job_id])["jobs"][0]
|
job = batch_client.describe_jobs(jobs=[job_id])["jobs"][0]
|
||||||
created_at = job["createdAt"]
|
created_at = job["createdAt"]
|
||||||
started_at = job["startedAt"]
|
started_at = job["startedAt"]
|
||||||
|
@ -194,7 +194,7 @@ def test_put_metric_data_with_statistics():
|
|||||||
dict(
|
dict(
|
||||||
MetricName="statmetric",
|
MetricName="statmetric",
|
||||||
Timestamp=utc_now,
|
Timestamp=utc_now,
|
||||||
# no Value to test https://github.com/spulec/moto/issues/1615
|
# no Value to test https://github.com/getmoto/moto/issues/1615
|
||||||
StatisticValues=dict(
|
StatisticValues=dict(
|
||||||
SampleCount=3.0, Sum=123.0, Maximum=100.0, Minimum=12.0
|
SampleCount=3.0, Sum=123.0, Maximum=100.0, Minimum=12.0
|
||||||
),
|
),
|
||||||
|
@ -2881,7 +2881,7 @@ def test_change_password():
|
|||||||
|
|
||||||
@mock_cognitoidp
|
@mock_cognitoidp
|
||||||
def test_change_password__using_custom_user_agent_header():
|
def test_change_password__using_custom_user_agent_header():
|
||||||
# https://github.com/spulec/moto/issues/3098
|
# https://github.com/getmoto/moto/issues/3098
|
||||||
# As the admin_initiate_auth-method is unauthenticated, we use the user-agent header to pass in the region
|
# As the admin_initiate_auth-method is unauthenticated, we use the user-agent header to pass in the region
|
||||||
# This test verifies this works, even if we pass in our own user-agent header
|
# This test verifies this works, even if we pass in our own user-agent header
|
||||||
from botocore.config import Config
|
from botocore.config import Config
|
||||||
@ -4327,7 +4327,7 @@ if not settings.TEST_SERVER_MODE:
|
|||||||
|
|
||||||
@mock_cognitoidp
|
@mock_cognitoidp
|
||||||
def test_idtoken_contains_kid_header():
|
def test_idtoken_contains_kid_header():
|
||||||
# https://github.com/spulec/moto/issues/3078
|
# https://github.com/getmoto/moto/issues/3078
|
||||||
# Setup
|
# Setup
|
||||||
cognito = boto3.client("cognito-idp", "us-west-2")
|
cognito = boto3.client("cognito-idp", "us-west-2")
|
||||||
user_pool_id = cognito.create_user_pool(PoolName=str(uuid.uuid4()))["UserPool"][
|
user_pool_id = cognito.create_user_pool(PoolName=str(uuid.uuid4()))["UserPool"][
|
||||||
|
@ -291,7 +291,7 @@ def test_access_denied_with_not_allowing_policy():
|
|||||||
@set_initial_no_auth_action_count(3)
|
@set_initial_no_auth_action_count(3)
|
||||||
@mock_ec2
|
@mock_ec2
|
||||||
def test_access_denied_for_run_instances():
|
def test_access_denied_for_run_instances():
|
||||||
# https://github.com/spulec/moto/issues/2774
|
# https://github.com/getmoto/moto/issues/2774
|
||||||
# The run-instances method was broken between botocore versions 1.15.8 and 1.15.12
|
# The run-instances method was broken between botocore versions 1.15.8 and 1.15.12
|
||||||
# This was due to the inclusion of '"idempotencyToken":true' in the response, somehow altering the signature and breaking the authentication
|
# This was due to the inclusion of '"idempotencyToken":true' in the response, somehow altering the signature and breaking the authentication
|
||||||
# Keeping this test in place in case botocore decides to break again
|
# Keeping this test in place in case botocore decides to break again
|
||||||
|
@ -29,7 +29,7 @@ if not settings.TEST_SERVER_MODE:
|
|||||||
@mock_s3
|
@mock_s3
|
||||||
def test_decorator_ordering() -> None:
|
def test_decorator_ordering() -> None:
|
||||||
"""
|
"""
|
||||||
https://github.com/spulec/moto/issues/3790#issuecomment-803979809
|
https://github.com/getmoto/moto/issues/3790#issuecomment-803979809
|
||||||
"""
|
"""
|
||||||
bucket_name = "banana-slugs"
|
bucket_name = "banana-slugs"
|
||||||
key = "trash-file"
|
key = "trash-file"
|
||||||
|
@ -13,7 +13,7 @@ service_names = [
|
|||||||
|
|
||||||
class TestMockBucketStartingWithServiceName:
|
class TestMockBucketStartingWithServiceName:
|
||||||
"""
|
"""
|
||||||
https://github.com/spulec/moto/issues/4099
|
https://github.com/getmoto/moto/issues/4099
|
||||||
"""
|
"""
|
||||||
|
|
||||||
@pytest.mark.parametrize("service_name,decorator", service_names)
|
@pytest.mark.parametrize("service_name,decorator", service_names)
|
||||||
|
@ -1920,7 +1920,7 @@ def test_update_continuous_backups_errors():
|
|||||||
ex.response["Error"]["Message"].should.equal("Table not found: not-existing-table")
|
ex.response["Error"]["Message"].should.equal("Table not found: not-existing-table")
|
||||||
|
|
||||||
|
|
||||||
# https://github.com/spulec/moto/issues/1043
|
# https://github.com/getmoto/moto/issues/1043
|
||||||
@mock_dynamodb
|
@mock_dynamodb
|
||||||
def test_query_missing_expr_names():
|
def test_query_missing_expr_names():
|
||||||
client = boto3.client("dynamodb", region_name="us-east-1")
|
client = boto3.client("dynamodb", region_name="us-east-1")
|
||||||
@ -1964,7 +1964,7 @@ def test_query_missing_expr_names():
|
|||||||
resp["Items"][0]["client"]["S"].should.equal("test2")
|
resp["Items"][0]["client"]["S"].should.equal("test2")
|
||||||
|
|
||||||
|
|
||||||
# https://github.com/spulec/moto/issues/2328
|
# https://github.com/getmoto/moto/issues/2328
|
||||||
@mock_dynamodb
|
@mock_dynamodb
|
||||||
def test_update_item_with_list():
|
def test_update_item_with_list():
|
||||||
dynamodb = boto3.resource("dynamodb", region_name="us-east-1")
|
dynamodb = boto3.resource("dynamodb", region_name="us-east-1")
|
||||||
@ -1986,7 +1986,7 @@ def test_update_item_with_list():
|
|||||||
resp["Item"].should.equal({"key": "the-key", "list": [1, 2]})
|
resp["Item"].should.equal({"key": "the-key", "list": [1, 2]})
|
||||||
|
|
||||||
|
|
||||||
# https://github.com/spulec/moto/issues/2328
|
# https://github.com/getmoto/moto/issues/2328
|
||||||
@mock_dynamodb
|
@mock_dynamodb
|
||||||
def test_update_item_with_no_action_passed_with_list():
|
def test_update_item_with_no_action_passed_with_list():
|
||||||
dynamodb = boto3.resource("dynamodb", region_name="us-east-1")
|
dynamodb = boto3.resource("dynamodb", region_name="us-east-1")
|
||||||
@ -2010,7 +2010,7 @@ def test_update_item_with_no_action_passed_with_list():
|
|||||||
resp["Item"].should.equal({"key": "the-key", "list": [1, 2]})
|
resp["Item"].should.equal({"key": "the-key", "list": [1, 2]})
|
||||||
|
|
||||||
|
|
||||||
# https://github.com/spulec/moto/issues/1342
|
# https://github.com/getmoto/moto/issues/1342
|
||||||
@mock_dynamodb
|
@mock_dynamodb
|
||||||
def test_update_item_on_map():
|
def test_update_item_on_map():
|
||||||
dynamodb = boto3.resource("dynamodb", region_name="us-east-1")
|
dynamodb = boto3.resource("dynamodb", region_name="us-east-1")
|
||||||
@ -2089,7 +2089,7 @@ def test_update_item_on_map():
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
# https://github.com/spulec/moto/issues/1358
|
# https://github.com/getmoto/moto/issues/1358
|
||||||
@mock_dynamodb
|
@mock_dynamodb
|
||||||
def test_update_if_not_exists():
|
def test_update_if_not_exists():
|
||||||
dynamodb = boto3.resource("dynamodb", region_name="us-east-1")
|
dynamodb = boto3.resource("dynamodb", region_name="us-east-1")
|
||||||
@ -2133,7 +2133,7 @@ def test_update_if_not_exists():
|
|||||||
assert resp["Items"][0]["created_at"] == 123
|
assert resp["Items"][0]["created_at"] == 123
|
||||||
|
|
||||||
|
|
||||||
# https://github.com/spulec/moto/issues/1937
|
# https://github.com/getmoto/moto/issues/1937
|
||||||
@mock_dynamodb
|
@mock_dynamodb
|
||||||
def test_update_return_attributes():
|
def test_update_return_attributes():
|
||||||
dynamodb = boto3.client("dynamodb", region_name="us-east-1")
|
dynamodb = boto3.client("dynamodb", region_name="us-east-1")
|
||||||
@ -2175,7 +2175,7 @@ def test_update_return_attributes():
|
|||||||
err["Message"].should.equal("Return values set to invalid value")
|
err["Message"].should.equal("Return values set to invalid value")
|
||||||
|
|
||||||
|
|
||||||
# https://github.com/spulec/moto/issues/3448
|
# https://github.com/getmoto/moto/issues/3448
|
||||||
@mock_dynamodb
|
@mock_dynamodb
|
||||||
def test_update_return_updated_new_attributes_when_same():
|
def test_update_return_updated_new_attributes_when_same():
|
||||||
dynamo_client = boto3.resource("dynamodb", region_name="us-east-1")
|
dynamo_client = boto3.resource("dynamodb", region_name="us-east-1")
|
||||||
@ -2872,7 +2872,7 @@ def test_sorted_query_with_numerical_sort_key():
|
|||||||
), "result items are not sorted by numerical value"
|
), "result items are not sorted by numerical value"
|
||||||
|
|
||||||
|
|
||||||
# https://github.com/spulec/moto/issues/1874
|
# https://github.com/getmoto/moto/issues/1874
|
||||||
@mock_dynamodb
|
@mock_dynamodb
|
||||||
def test_item_size_is_under_400KB():
|
def test_item_size_is_under_400KB():
|
||||||
dynamodb = boto3.resource("dynamodb", region_name="us-east-1")
|
dynamodb = boto3.resource("dynamodb", region_name="us-east-1")
|
||||||
@ -4206,7 +4206,7 @@ def create_simple_table_and_return_client():
|
|||||||
return dynamodb
|
return dynamodb
|
||||||
|
|
||||||
|
|
||||||
# https://github.com/spulec/moto/issues/2806
|
# https://github.com/getmoto/moto/issues/2806
|
||||||
# https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_UpdateItem.html
|
# https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_UpdateItem.html
|
||||||
# #DDB-UpdateItem-request-UpdateExpression
|
# #DDB-UpdateItem-request-UpdateExpression
|
||||||
@mock_dynamodb
|
@mock_dynamodb
|
||||||
@ -4357,7 +4357,7 @@ def test_summing_up_2_strings_raises_exception():
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
# https://github.com/spulec/moto/issues/2806
|
# https://github.com/getmoto/moto/issues/2806
|
||||||
@mock_dynamodb
|
@mock_dynamodb
|
||||||
def test_update_item_with_attribute_in_right_hand_side():
|
def test_update_item_with_attribute_in_right_hand_side():
|
||||||
"""
|
"""
|
||||||
@ -5412,7 +5412,7 @@ def test_describe_endpoints(region):
|
|||||||
@mock_dynamodb
|
@mock_dynamodb
|
||||||
def test_update_non_existing_item_raises_error_and_does_not_contain_item_afterwards():
|
def test_update_non_existing_item_raises_error_and_does_not_contain_item_afterwards():
|
||||||
"""
|
"""
|
||||||
https://github.com/spulec/moto/issues/3729
|
https://github.com/getmoto/moto/issues/3729
|
||||||
Exception is raised, but item was persisted anyway
|
Exception is raised, but item was persisted anyway
|
||||||
Happened because we would create a placeholder, before validating/executing the UpdateExpression
|
Happened because we would create a placeholder, before validating/executing the UpdateExpression
|
||||||
:return:
|
:return:
|
||||||
@ -5484,7 +5484,7 @@ def test_batch_write_item():
|
|||||||
|
|
||||||
@mock_dynamodb
|
@mock_dynamodb
|
||||||
def test_gsi_lastevaluatedkey():
|
def test_gsi_lastevaluatedkey():
|
||||||
# github.com/spulec/moto/issues/3968
|
# github.com/getmoto/moto/issues/3968
|
||||||
conn = boto3.resource("dynamodb", region_name="us-west-2")
|
conn = boto3.resource("dynamodb", region_name="us-west-2")
|
||||||
name = "test-table"
|
name = "test-table"
|
||||||
table = conn.Table(name)
|
table = conn.Table(name)
|
||||||
@ -5544,7 +5544,7 @@ def test_gsi_lastevaluatedkey():
|
|||||||
|
|
||||||
@mock_dynamodb
|
@mock_dynamodb
|
||||||
def test_filter_expression_execution_order():
|
def test_filter_expression_execution_order():
|
||||||
# As mentioned here: https://github.com/spulec/moto/issues/3909
|
# As mentioned here: https://github.com/getmoto/moto/issues/3909
|
||||||
# and documented here: https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Query.html#Query.FilterExpression
|
# and documented here: https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Query.html#Query.FilterExpression
|
||||||
# the filter expression should be evaluated after the query.
|
# the filter expression should be evaluated after the query.
|
||||||
# The same applies to scan operations:
|
# The same applies to scan operations:
|
||||||
|
@ -5,7 +5,7 @@ from moto import mock_dynamodb
|
|||||||
|
|
||||||
@mock_dynamodb
|
@mock_dynamodb
|
||||||
def test_update_different_map_elements_in_single_request():
|
def test_update_different_map_elements_in_single_request():
|
||||||
# https://github.com/spulec/moto/issues/5552
|
# https://github.com/getmoto/moto/issues/5552
|
||||||
dynamodb = boto3.resource("dynamodb", region_name="us-east-1")
|
dynamodb = boto3.resource("dynamodb", region_name="us-east-1")
|
||||||
dynamodb.create_table(
|
dynamodb.create_table(
|
||||||
TableName="example_table",
|
TableName="example_table",
|
||||||
|
@ -833,7 +833,7 @@ def test_ami_attribute_user_and_group_permissions():
|
|||||||
|
|
||||||
@mock_ec2
|
@mock_ec2
|
||||||
def test_filter_description():
|
def test_filter_description():
|
||||||
# https://github.com/spulec/moto/issues/4460
|
# https://github.com/getmoto/moto/issues/4460
|
||||||
client = boto3.client("ec2", region_name="us-west-2")
|
client = boto3.client("ec2", region_name="us-west-2")
|
||||||
|
|
||||||
# Search for partial description
|
# Search for partial description
|
||||||
|
@ -715,7 +715,7 @@ def test_modify_attribute_blockDeviceMapping():
|
|||||||
Reproduces the missing feature explained at [0], where we want to mock a
|
Reproduces the missing feature explained at [0], where we want to mock a
|
||||||
call to modify an instance attribute of type: blockDeviceMapping.
|
call to modify an instance attribute of type: blockDeviceMapping.
|
||||||
|
|
||||||
[0] https://github.com/spulec/moto/issues/160
|
[0] https://github.com/getmoto/moto/issues/160
|
||||||
"""
|
"""
|
||||||
client = boto3.client("ec2", region_name="us-east-1")
|
client = boto3.client("ec2", region_name="us-east-1")
|
||||||
ec2 = boto3.resource("ec2", region_name="us-east-1")
|
ec2 = boto3.resource("ec2", region_name="us-east-1")
|
||||||
|
@ -145,7 +145,7 @@ def test_describe_regions_dryrun():
|
|||||||
def test_describe_zones_and_get_instance_types(region_name):
|
def test_describe_zones_and_get_instance_types(region_name):
|
||||||
"""
|
"""
|
||||||
Verify that instance types exist in all exposed Availability Zones
|
Verify that instance types exist in all exposed Availability Zones
|
||||||
https://github.com/spulec/moto/issues/5494
|
https://github.com/getmoto/moto/issues/5494
|
||||||
"""
|
"""
|
||||||
client = boto3.client("ec2", region_name=region_name)
|
client = boto3.client("ec2", region_name=region_name)
|
||||||
zones = client.describe_availability_zones()["AvailabilityZones"]
|
zones = client.describe_availability_zones()["AvailabilityZones"]
|
||||||
|
@ -680,7 +680,7 @@ def validate_subnet_details_after_creating_eni(
|
|||||||
|
|
||||||
@mock_ec2
|
@mock_ec2
|
||||||
def test_run_instances_should_attach_to_default_subnet():
|
def test_run_instances_should_attach_to_default_subnet():
|
||||||
# https://github.com/spulec/moto/issues/2877
|
# https://github.com/getmoto/moto/issues/2877
|
||||||
ec2 = boto3.resource("ec2", region_name="sa-east-1")
|
ec2 = boto3.resource("ec2", region_name="sa-east-1")
|
||||||
client = boto3.client("ec2", region_name="sa-east-1")
|
client = boto3.client("ec2", region_name="sa-east-1")
|
||||||
sec_group_name = str(uuid4())[0:6]
|
sec_group_name = str(uuid4())[0:6]
|
||||||
|
@ -304,7 +304,7 @@ def test_create_listeners_without_port():
|
|||||||
@mock_ec2
|
@mock_ec2
|
||||||
@mock_elbv2
|
@mock_elbv2
|
||||||
def test_create_rule_forward_config_as_second_arg():
|
def test_create_rule_forward_config_as_second_arg():
|
||||||
# https://github.com/spulec/moto/issues/4123
|
# https://github.com/getmoto/moto/issues/4123
|
||||||
# Necessary because there was some convoluted way of parsing arguments
|
# Necessary because there was some convoluted way of parsing arguments
|
||||||
# Actions with type=forward had to be the first action specified
|
# Actions with type=forward had to be the first action specified
|
||||||
response, vpc, _, _, _, elbv2 = create_load_balancer()
|
response, vpc, _, _, _, elbv2 = create_load_balancer()
|
||||||
|
@ -1102,7 +1102,7 @@ def test_website_redirect_location():
|
|||||||
resp = s3.get_object(Bucket="mybucket", Key="steve")
|
resp = s3.get_object(Bucket="mybucket", Key="steve")
|
||||||
resp.get("WebsiteRedirectLocation").should.equal(None)
|
resp.get("WebsiteRedirectLocation").should.equal(None)
|
||||||
|
|
||||||
url = "https://github.com/spulec/moto"
|
url = "https://github.com/getmoto/moto"
|
||||||
s3.put_object(
|
s3.put_object(
|
||||||
Bucket="mybucket", Key="steve", Body=b"is awesome", WebsiteRedirectLocation=url
|
Bucket="mybucket", Key="steve", Body=b"is awesome", WebsiteRedirectLocation=url
|
||||||
)
|
)
|
||||||
@ -3445,7 +3445,7 @@ def test_head_object_should_return_default_content_type():
|
|||||||
|
|
||||||
@mock_s3
|
@mock_s3
|
||||||
def test_request_partial_content_should_contain_all_metadata():
|
def test_request_partial_content_should_contain_all_metadata():
|
||||||
# github.com/spulec/moto/issues/4203
|
# github.com/getmoto/moto/issues/4203
|
||||||
bucket = "bucket"
|
bucket = "bucket"
|
||||||
object_key = "key"
|
object_key = "key"
|
||||||
body = "some text"
|
body = "some text"
|
||||||
|
@ -7,7 +7,7 @@ from moto import mock_s3
|
|||||||
@mock_s3
|
@mock_s3
|
||||||
class ClassDecoratorTest(unittest.TestCase):
|
class ClassDecoratorTest(unittest.TestCase):
|
||||||
"""
|
"""
|
||||||
https://github.com/spulec/moto/issues/3535
|
https://github.com/getmoto/moto/issues/3535
|
||||||
An update to the mock-package introduced a failure during teardown.
|
An update to the mock-package introduced a failure during teardown.
|
||||||
This test is in place to catch any similar failures with our mocking approach
|
This test is in place to catch any similar failures with our mocking approach
|
||||||
"""
|
"""
|
||||||
|
@ -190,7 +190,7 @@ class TestS3FileHandleClosures(TestCase):
|
|||||||
|
|
||||||
|
|
||||||
def test_verify_key_can_be_copied_after_disposing():
|
def test_verify_key_can_be_copied_after_disposing():
|
||||||
# https://github.com/spulec/moto/issues/5588
|
# https://github.com/getmoto/moto/issues/5588
|
||||||
# Multithreaded bug where:
|
# Multithreaded bug where:
|
||||||
# - User: calls list_object_versions
|
# - User: calls list_object_versions
|
||||||
# - Moto creates a list of all keys
|
# - Moto creates a list of all keys
|
||||||
|
@ -202,7 +202,7 @@ def test_s3_server_post_cors():
|
|||||||
|
|
||||||
def test_s3_server_post_cors_exposed_header():
|
def test_s3_server_post_cors_exposed_header():
|
||||||
"""Test that we can override default CORS headers with custom bucket rules"""
|
"""Test that we can override default CORS headers with custom bucket rules"""
|
||||||
# github.com/spulec/moto/issues/4220
|
# github.com/getmoto/moto/issues/4220
|
||||||
|
|
||||||
cors_config_payload = """<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
|
cors_config_payload = """<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
|
||||||
<CORSRule>
|
<CORSRule>
|
||||||
|
@ -20,7 +20,7 @@ def test_sqs_list_identities():
|
|||||||
|
|
||||||
# Make sure that we can receive messages from queues whose name contains dots (".")
|
# Make sure that we can receive messages from queues whose name contains dots (".")
|
||||||
# The AWS API mandates that the names of FIFO queues use the suffix ".fifo"
|
# The AWS API mandates that the names of FIFO queues use the suffix ".fifo"
|
||||||
# See: https://github.com/spulec/moto/issues/866
|
# See: https://github.com/getmoto/moto/issues/866
|
||||||
|
|
||||||
for queue_name in ("testqueue", "otherqueue.fifo"):
|
for queue_name in ("testqueue", "otherqueue.fifo"):
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user