Skip to main content

Fixtures for testing code that interacts with AWS

Project description

pytest-moto-fixtures

pytest fixtures for testing code that integrates with AWS using moto as a mock.

Install

Install pytest-moto-fixtures package from PyPI:

pip install pytest-moto-fixtures[pytest]

Examples of Use

Code for test:

class Example:
    def __init__(self, sqs_client, queue_url):
        self._sqs_client = sqs_client
        self._queue_url = queue_url

    def run(self, values):
        total = 0
        for value in values:
            total += value
            self._sqs_client.send_message(QueueUrl=self._queue_url, MessageBody=f'Value processed: {value}')
        return total

Test example using fixture:

from random import randint

def test_example_with_fixture(sqs_queue):
    values = [randint(1, 10) for _ in range(randint(3, 10))]
    expected = sum(values)

    sut = Example(sqs_client=sqs_queue.client, queue_url=sqs_queue.url)
    returned = sut.run(values)

    assert returned == expected
    assert len(sqs_queue) == len(values)
    for value, message in zip(values, sqs_queue):
        assert message['Body'] == f'Value processed: {value}'

Test example using context:

from random import randint
from pytest_moto_fixtures.services.sqs import sqs_create_queue

def test_example_with_context(sqs_client):
    values = [randint(1, 10) for _ in range(randint(3, 10))]
    expected = sum(values)

    with sqs_create_queue(sqs_client=sqs_client, name='my-queue') as sqs_queue:
        sut = Example(sqs_client=sqs_client, queue_url=sqs_queue.url)
        returned = sut.run(values)

        assert returned == expected
        assert len(sqs_queue) == len(values)
        for value, message in zip(values, sqs_queue):
            assert message['Body'] == f'Value processed: {value}'

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pytest_moto_fixtures-0.0.1a4.tar.gz (8.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pytest_moto_fixtures-0.0.1a4-py3-none-any.whl (12.3 kB view details)

Uploaded Python 3

File details

Details for the file pytest_moto_fixtures-0.0.1a4.tar.gz.

File metadata

  • Download URL: pytest_moto_fixtures-0.0.1a4.tar.gz
  • Upload date:
  • Size: 8.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pytest_moto_fixtures-0.0.1a4.tar.gz
Algorithm Hash digest
SHA256 f353cbe16b4fdac37018836a0994fc468a09a5999850977f316b40bd95258453
MD5 30393d229547a4fbc4ddc305e653fcff
BLAKE2b-256 bcbfd8f5fafc4742af0a65f63552f50cca00aa3d2161965610abeb9ab770c2dc

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytest_moto_fixtures-0.0.1a4.tar.gz:

Publisher: release.yml on eduardoklosowski/pytest-moto-fixtures

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pytest_moto_fixtures-0.0.1a4-py3-none-any.whl.

File metadata

File hashes

Hashes for pytest_moto_fixtures-0.0.1a4-py3-none-any.whl
Algorithm Hash digest
SHA256 227b696417492878a7c0395ddc760656ae9f59efbf239fca05050425b01ad0ac
MD5 79ede51c34b94b4c4f2fc16a5e125e72
BLAKE2b-256 89395973a1869007a2e2bea1eb34b670d03bf757a7cdd980f7cfdc89552e9592

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytest_moto_fixtures-0.0.1a4-py3-none-any.whl:

Publisher: release.yml on eduardoklosowski/pytest-moto-fixtures

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page