{"id":27962371,"url":"https://github.com/dbfixtures/pytest-dynamodb","last_synced_at":"2025-07-14T00:05:22.614Z","repository":{"id":38361503,"uuid":"71177711","full_name":"dbfixtures/pytest-dynamodb","owner":"dbfixtures","description":"This is a pytest plugin, that enables you to test your code that relies on a running DynamoDB Database. It allows you to specify fixtures for DynamoDB process and client (resource in AWS boto terms).","archived":false,"fork":false,"pushed_at":"2025-07-07T11:39:54.000Z","size":2123,"stargazers_count":19,"open_issues_count":2,"forks_count":6,"subscribers_count":8,"default_branch":"main","last_synced_at":"2025-07-07T12:41:02.636Z","etag":null,"topics":["dynamodb","pytest","pytest-plugin","python"],"latest_commit_sha":null,"homepage":"https://pypi.python.org/pypi/pytest-dynamodb/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dbfixtures.png","metadata":{"files":{"readme":"README.rst","changelog":"CHANGES.rst","contributing":"CONTRIBUTING.rst","funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS.rst","dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2016-10-17T20:20:33.000Z","updated_at":"2025-07-07T11:39:56.000Z","dependencies_parsed_at":"2023-11-13T06:21:47.936Z","dependency_job_id":"6c36202c-feb9-431c-9058-2b845d81179d","html_url":"https://github.com/dbfixtures/pytest-dynamodb","commit_stats":{"total_commits":1129,"total_committers":10,"mean_commits":112.9,"dds":0.62533215234721,"last_synced_commit":"42da69a0e9644719b92ab9a86a14c94c32543254"},"previous_names":["dbfixtures/pytest-dynamodb","clearcodehq/pytest-dynamodb"],"tags_count":16,"template":false,"template_full_name":null,"purl":"pkg:github/dbfixtures/pytest-dynamodb","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dbfixtures%2Fpytest-dynamodb","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dbfixtures%2Fpytest-dynamodb/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dbfixtures%2Fpytest-dynamodb/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dbfixtures%2Fpytest-dynamodb/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dbfixtures","download_url":"https://codeload.github.com/dbfixtures/pytest-dynamodb/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dbfixtures%2Fpytest-dynamodb/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265224101,"owners_count":23730339,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dynamodb","pytest","pytest-plugin","python"],"created_at":"2025-05-07T19:21:12.932Z","updated_at":"2025-07-14T00:05:22.593Z","avatar_url":"https://github.com/dbfixtures.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":".. image:: https://raw.githubusercontent.com/dbfixtures/pytest-dynamodb/master/logo.png\n    :width: 100px\n    :height: 100px\n\npytest-dynamodb\n===============\n\n.. image:: https://img.shields.io/pypi/v/pytest-dynamodb.svg\n    :target: https://pypi.python.org/pypi/pytest-dynamodb/\n    :alt: Latest PyPI version\n\n.. image:: https://img.shields.io/pypi/wheel/pytest-dynamodb.svg\n    :target: https://pypi.python.org/pypi/pytest-dynamodb/\n    :alt: Wheel Status\n\n.. image:: https://img.shields.io/pypi/pyversions/pytest-dynamodb.svg\n    :target: https://pypi.python.org/pypi/pytest-dynamodb/\n    :alt: Supported Python Versions\n\n.. image:: https://img.shields.io/pypi/l/pytest-dynamodb.svg\n    :target: https://pypi.python.org/pypi/pytest-dynamodb/\n    :alt: License\n\nPackage status\n--------------\n\n.. image:: https://travis-ci.org/dbfixtures/pytest-dynamodb.svg?branch=v2.5.1\n    :target: https://travis-ci.org/dbfixtures/pytest-dynamodb\n    :alt: Tests\n\n.. image:: https://coveralls.io/repos/dbfixtures/pytest-dynamodb/badge.png?branch=v2.5.1\n    :target: https://coveralls.io/r/dbfixtures/pytest-dynamodb?branch=v2.5.1\n    :alt: Coverage Status\n\nWhat is this?\n=============\n\nThis is a pytest plugin, that enables you to test your code that relies on a running DynamoDB Database.\nIt allows you to specify fixtures for DynamoDB process and client (resource in AWS boto terms).\n\n\nHow to use\n==========\n\n.. warning::\n\n    Please download the `DynamoDB database locally \u003chttp://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DynamoDBLocal.html\u003e`_.\n\nPlugin contains two fixtures\n\n* **dynamodb** - it's a client/resource fixture that has functional scope. After each test it drops tables in DynamoDB.\n* **dynamodb_proc** - session scoped fixture, that starts DynamoDB instance at it's first use and stops at the end of the tests.\n* **dynamodb_noproc** - session scoped fixture, that's used to connect to dynamodb mained externally (like docker).\n\nSimply include one of these fixtures into your tests fixture list.\n\nYou can also create additional dynamodb client and process fixtures if you'd need to:\n\n\n.. code-block:: python\n\n    from pytest_dynamodb import factories\n\n    dynamodb_my_proc = factories.dynamodb_proc(\n        port=None, logsdir='/tmp', delay=True)\n    dynamodb_my = factories.dynamodb('dynamodb_my_proc')\n\n.. note::\n\n    Each DynamoDB process fixture can be configured in a different way than the others through the fixture factory arguments.\n\n\n.. code-block:: python\n\n    from pytest_dynamodb import factories\n\n    dynamodb_my_noproc = factories.dynamodb_noproc(\n        host=\"dynamodb\", port=8088)\n    dynamodb_my = factories.dynamodb('dynamodb_my_noproc')\n\n.. note::\n\n    Each DynamoDB process fixture can be configured in a different way than the others through the fixture factory arguments.\n\n\nConfiguration\n=============\n\nYou can define your settings in three ways, it's fixture factory argument, command line option and pytest.ini configuration option.\nYou can pick which you prefer, but remember that these settings are handled in the following order:\n\n    * ``Fixture factory argument``\n    * ``Command line option``\n    * ``Configuration option in your pytest.ini file``\n\n.. list-table:: Configuration options\n   :header-rows: 1\n\n   * - DynamoDB option\n     - Fixture factory argument\n     - Command line option\n     - pytest.ini option\n     - Default\n   * - Path to dynamodb jar file\n     - dynamodb_dir\n     - --dynamodb-dir\n     - dynamodb_dir\n     - /tmp/dynamodb\n   * - host\n     - host\n     - --dynamodb-host\n     - dynamodb_host\n     - 127.0.0.1\n   * - port\n     - port\n     - --dynamodb-port\n     - dynamodb_port\n     - random\n   * - AWS Access Key\n     - access_key\n     - --dynamodb-aws_access_key\n     - dynamodb_aws_access_key\n     - fakeMyKeyId\n   * - AWS Secret Key\n     - secret_key\n     - --dynamodb-aws_secret_key\n     - dynamodb_aws_secret_key\n     - fakeSecretAccessKey\n   * - AWS Region\n     - region\n     - --dynamodb-aws_region\n     - dynamodb_aws_region\n     - us-west-1\n   * - `Introduce delays \u003chttps://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DynamoDBLocal.UsageNotes.html#:~:text=%2DdelayTransientStatuses\u003e`_\n     - delay\n     - --dynamodb-delay\n     - dynamodb_delay\n     - false\n\n\nExample usage:\n\n* pass it as an argument in your own fixture\n\n    .. code-block:: python\n\n        dynamodb_proc = factories.dynamodb_proc(\n            port=8888)\n\n* use ``--dynamodb-port`` command line option when you run your tests\n\n    .. code-block::\n\n        py.test tests --dynamodb-port=8888\n\n\n* specify your port as ``dynamodb_port`` in your ``pytest.ini`` file.\n\n    To do so, put a line like the following under the ``[pytest]`` section of your ``pytest.ini``:\n\n    .. code-block:: ini\n\n        [pytest]\n        dynamodb_port = 8888\n\nPackage resources\n-----------------\n\n* Bug tracker: https://github.com/dbfixtures/pytest-dynamodb/issues\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdbfixtures%2Fpytest-dynamodb","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdbfixtures%2Fpytest-dynamodb","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdbfixtures%2Fpytest-dynamodb/lists"}