Metadata-Version: 2.1
Name: fast-test-database
Version: 0.1.1
Summary: Configure an in-memory database for running Django tests
License: GPL-3.0-or-later
Author: Alexey Kotlyarov
Author-email: a@koterpillar.com
Requires-Python: >=3.7,<4.0
Classifier: License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Requires-Dist: Django (>=3.0,<4.0)
Description-Content-Type: text/x-rst

Fast test database
==================

Use a pure in-memory database for running Django tests.

Usage
-----

In ``settings.py``:

.. code:: python

    from fast_test_database import fast_test_database

    DATABASES = fast_test_database(DATABASES)

    # Or:
    DATABASES = fast_test_database(DATABASES,
                                   test_commands=('test', 'harvest'))

    # Or:
    DATABASES = fast_test_database(DATABASES,
                                   version='5.7')

This will be a no-op except for ``./manage.py test``, when an in-memory
database will be automatically started and supplied to the application.

Details
-------

The in-memory database is a full PostgreSQL or MySQL instance started
using Docker, using tmpfs for storing the data. A single container will
be started if not yet running. It will not be shut down automatically,
and instead reused for subsequent tests.

The type of the database (PostgreSQL or MySQL) is chosen based on the
existing default database engine.

The default version of the database (PostgreSQL or MySQL) is latest.
But it can be specified by version parameter.

