# pytest-aiomoto
[![Build Status](https://github.com/dazza-codes/pytest-aiomoto/actions/workflows/python-test.yml/badge.svg)](https://github.com/dazza-codes/pytest-aiomoto/actions/workflows/python-test.yml)
[![Documentation Status](https://readthedocs.org/projects/pytest-aiomoto/badge/?version=latest)](https://pytest-aiomoto.readthedocs.io/en/latest/?badge=latest)
[![PyPI version](https://img.shields.io/pypi/v/pytest-aiomoto.svg)](https://pypi.org/project/pytest-aiomoto)
[![Python versions](https://img.shields.io/pypi/pyversions/pytest-aiomoto.svg)](https://pypi.org/project/pytest-aiomoto)
[pytest](https://docs.pytest.org) fixtures for AWS services,
with support for asyncio fixtures using
[aiobotocore](https://aiobotocore.readthedocs.io)
## Warning
- This package is work in progress, it is not recommended for production purposes.
During the initial phases of this project, it is likely that some releases
could introduce breaking changes in test fixtures. It's highly
recommended pinning this dependency to patch releases during the
0.x.y releases.
- This package could restrict available versions of aws libs, including:
aiobotocore, botocore, boto3, and moto.
- The fixtures in this package might not be optimized for concurrent testing.
It is not known yet whether the fixtures are thread safe or adequately
randomized to support parallel test suites.
## Installation
You can install "pytest-aiomoto" via pip
$ pip install pytest-aiomoto
## Usage
To list the available fixtures
$ pytest --fixtures
This project attempts to provide some common fixtures for commonly used
services. As such, it is not a generic package for any services; the
moto project provides that and this project builds on that. This
project aims to create some useful fixtures that behave nearly the
same way for both synchronous clients (botocore) and
asynchronous clients (aiobotocore).
## Contributing
Contributions are welcome, if you build similar common fixtures or build
on the existing package fixtures. The details for bug fixes could be
complicated, due to the dependencies on aiobotocore and moto.
Please review [github collaboration](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests)
practices. Once you clone your fork of the repository:
cd pytest-aiomoto
make init
make test
On OSX, use `gmake` from Homebrew to get GNU make > 4.x.
It's recommended that development use python 3.8, to avoid introducing any python
code that might not be compatible with the minimum version of python supported. This
is important in the context of the general evolution of asyncio in python.
Most development is done in a linux context (e.g. Ubuntu LTS). If some development
tools or common practices are not working as expected on OSX or Windows, there is
limited support for adapting to various development environments.
Tests are run with [pytest](https://github.com/pytest-dev/pytest), please ensure
the percentage of coverage at least stays the same before you submit a pull request.
The expectation for contributions might be a slow process, please do not anticipate
any turn around on the order of days (unless you're already a core contributor).
Using your own fork can be a faster way to evolve your fixtures for your use cases.
## Release Versions
Install [pipx](https://pypa.github.io/pipx/) and use it to install
[versionner](https://msztolcman.github.io/versionner/).
```shell
pipx install versionner
ver --help
```
With `pipx` and `versionner` installed, it can be used to manage releases
for any python library. See the documentation for `ver` for details on
how to manage sem-ver library releases. See `.versionner.rc` file for
details of the project configuration.
## Issues
If you encounter any problems, please
[file an issue](https://github.com/dazza-codes/pytest-aiomoto/issues)
along with a detailed description.
# License
Distributed under the terms of the
[Apache Software License 2.0](http://www.apache.org/licenses/LICENSE-2.0),
"pytest-aiomoto" is free and open source software.
```text
Copyright 2019-2023 Darren Weber
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
```
# Notices
Inspiration for this project comes from testing the
[aio-aws](https://github.com/dazza-codes/aio-aws) project,
which uses the Apache 2 license.
Raw data
{
"_id": null,
"home_page": "https://github.com/dazza-codes/pytest-aiomoto",
"name": "pytest-aiomoto",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.8,<4.0",
"maintainer_email": "",
"keywords": "Development Status :: 3 - Alpha,Topic :: Software Development :: Testing,Framework :: Pytest,Intended Audience :: Developers,Operating System :: OS Independent,Programming Language :: Python,Programming Language :: Python :: 3,Programming Language :: Python :: 3.8,Programming Language :: Python :: 3.9,Programming Language :: Python :: 3.10,Programming Language :: Python :: 3.11,Programming Language :: Python :: 3 :: Only,License :: OSI Approved :: Apache Software License",
"author": "Darren Weber",
"author_email": "dazza-codes@github.com",
"download_url": "https://files.pythonhosted.org/packages/85/ed/282bf22db2eb68e02aaeb663dc6d8f21838dc0206ed03c96267af86b687b/pytest_aiomoto-0.7.1.tar.gz",
"platform": null,
"description": "# pytest-aiomoto\n\n[![Build Status](https://github.com/dazza-codes/pytest-aiomoto/actions/workflows/python-test.yml/badge.svg)](https://github.com/dazza-codes/pytest-aiomoto/actions/workflows/python-test.yml)\n[![Documentation Status](https://readthedocs.org/projects/pytest-aiomoto/badge/?version=latest)](https://pytest-aiomoto.readthedocs.io/en/latest/?badge=latest)\n\n[![PyPI version](https://img.shields.io/pypi/v/pytest-aiomoto.svg)](https://pypi.org/project/pytest-aiomoto)\n[![Python versions](https://img.shields.io/pypi/pyversions/pytest-aiomoto.svg)](https://pypi.org/project/pytest-aiomoto)\n\n[pytest](https://docs.pytest.org) fixtures for AWS services,\nwith support for asyncio fixtures using\n[aiobotocore](https://aiobotocore.readthedocs.io)\n\n## Warning\n\n- This package is work in progress, it is not recommended for production purposes.\n During the initial phases of this project, it is likely that some releases\n could introduce breaking changes in test fixtures. It's highly\n recommended pinning this dependency to patch releases during the\n 0.x.y releases.\n- This package could restrict available versions of aws libs, including:\n aiobotocore, botocore, boto3, and moto.\n- The fixtures in this package might not be optimized for concurrent testing.\n It is not known yet whether the fixtures are thread safe or adequately\n randomized to support parallel test suites.\n\n## Installation\n\nYou can install \"pytest-aiomoto\" via pip\n\n $ pip install pytest-aiomoto\n\n## Usage\n\nTo list the available fixtures\n\n $ pytest --fixtures\n\nThis project attempts to provide some common fixtures for commonly used\nservices. As such, it is not a generic package for any services; the\nmoto project provides that and this project builds on that. This\nproject aims to create some useful fixtures that behave nearly the\nsame way for both synchronous clients (botocore) and\nasynchronous clients (aiobotocore).\n\n## Contributing\n\nContributions are welcome, if you build similar common fixtures or build\non the existing package fixtures. The details for bug fixes could be\ncomplicated, due to the dependencies on aiobotocore and moto.\n\nPlease review [github collaboration](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests)\npractices. Once you clone your fork of the repository:\n\n cd pytest-aiomoto\n make init\n make test\n\nOn OSX, use `gmake` from Homebrew to get GNU make > 4.x.\n\nIt's recommended that development use python 3.8, to avoid introducing any python\ncode that might not be compatible with the minimum version of python supported. This\nis important in the context of the general evolution of asyncio in python.\n\nMost development is done in a linux context (e.g. Ubuntu LTS). If some development\ntools or common practices are not working as expected on OSX or Windows, there is\nlimited support for adapting to various development environments.\n\nTests are run with [pytest](https://github.com/pytest-dev/pytest), please ensure\nthe percentage of coverage at least stays the same before you submit a pull request.\nThe expectation for contributions might be a slow process, please do not anticipate\nany turn around on the order of days (unless you're already a core contributor).\nUsing your own fork can be a faster way to evolve your fixtures for your use cases.\n\n## Release Versions\n\nInstall [pipx](https://pypa.github.io/pipx/) and use it to install\n[versionner](https://msztolcman.github.io/versionner/).\n\n```shell\npipx install versionner\nver --help\n```\n\nWith `pipx` and `versionner` installed, it can be used to manage releases\nfor any python library. See the documentation for `ver` for details on\nhow to manage sem-ver library releases. See `.versionner.rc` file for\ndetails of the project configuration.\n\n## Issues\n\nIf you encounter any problems, please\n[file an issue](https://github.com/dazza-codes/pytest-aiomoto/issues)\nalong with a detailed description.\n\n# License\n\nDistributed under the terms of the\n[Apache Software License 2.0](http://www.apache.org/licenses/LICENSE-2.0),\n\"pytest-aiomoto\" is free and open source software.\n\n```text\nCopyright 2019-2023 Darren Weber\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n```\n\n# Notices\n\nInspiration for this project comes from testing the\n[aio-aws](https://github.com/dazza-codes/aio-aws) project,\nwhich uses the Apache 2 license.\n",
"bugtrack_url": null,
"license": "Apache-2.0",
"summary": "pytest-aiomoto",
"version": "0.7.1",
"project_urls": {
"Homepage": "https://github.com/dazza-codes/pytest-aiomoto",
"Repository": "https://github.com/dazza-codes/pytest-aiomoto.git"
},
"split_keywords": [
"development status :: 3 - alpha",
"topic :: software development :: testing",
"framework :: pytest",
"intended audience :: developers",
"operating system :: os independent",
"programming language :: python",
"programming language :: python :: 3",
"programming language :: python :: 3.8",
"programming language :: python :: 3.9",
"programming language :: python :: 3.10",
"programming language :: python :: 3.11",
"programming language :: python :: 3 :: only",
"license :: osi approved :: apache software license"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "a0d328c447439deb30cf49c07b51f04381f7dff4187643be5e124df41130190c",
"md5": "fe43a2eff0397bc91a6a95720b7fc537",
"sha256": "e84c46be37c29c865189b4bd5dd98860db95af4a5a7f87d50695ecdd20f1e797"
},
"downloads": -1,
"filename": "pytest_aiomoto-0.7.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "fe43a2eff0397bc91a6a95720b7fc537",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8,<4.0",
"size": 38927,
"upload_time": "2023-06-24T21:37:16",
"upload_time_iso_8601": "2023-06-24T21:37:16.933406Z",
"url": "https://files.pythonhosted.org/packages/a0/d3/28c447439deb30cf49c07b51f04381f7dff4187643be5e124df41130190c/pytest_aiomoto-0.7.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "85ed282bf22db2eb68e02aaeb663dc6d8f21838dc0206ed03c96267af86b687b",
"md5": "474bcd1e8e3af7b1da723d4b57e22716",
"sha256": "df6bf2f967e11da3968db85dd59530b9f45f7b6e5215f2f83b1b8c38bd72a53a"
},
"downloads": -1,
"filename": "pytest_aiomoto-0.7.1.tar.gz",
"has_sig": false,
"md5_digest": "474bcd1e8e3af7b1da723d4b57e22716",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8,<4.0",
"size": 27186,
"upload_time": "2023-06-24T21:37:18",
"upload_time_iso_8601": "2023-06-24T21:37:18.390779Z",
"url": "https://files.pythonhosted.org/packages/85/ed/282bf22db2eb68e02aaeb663dc6d8f21838dc0206ed03c96267af86b687b/pytest_aiomoto-0.7.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-06-24 21:37:18",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "dazza-codes",
"github_project": "pytest-aiomoto",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "pytest-aiomoto"
}