def test_change_db_sqlite(self):
        """
        Test calling fast_test_database inside tests with SQLite configured.
        """

        with self.mock_sys_argv('python', './manage.py', 'test'):
            databases = fast_test_database(SQLITE_SETTINGS)

        self.assertEqual(databases['default'], SQLITE_SETTINGS['default'])
    def test_change_db_mysql(self):
        """
        Test calling fast_test_database inside tests with MySQL configured.
        """

        with self.mock_sys_argv('python', './manage.py', 'test'):
            databases = fast_test_database(MYSQL_SETTINGS)

        self.assert_mysql(databases['default'])
    def test_change_db_postgres(self):
        """
        Test calling fast_test_database inside tests with PostgreSQL
        configured.
        """

        with self.mock_sys_argv('python', './manage.py', 'test'):
            databases = fast_test_database(PG_SETTINGS)

        self.assert_postgres(databases['default'])
    def test_normal_run(self):
        """Test calling fast_test_database while not inside tests."""

        for config in (
                MYSQL_SETTINGS,
                PG_SETTINGS,
                SQLITE_SETTINGS,
        ):
            with self.mock_sys_argv('python', './manage.py', 'runserver'):
                databases = fast_test_database(config)

            self.assertEqual(databases, config)
Django settings for the test project.
"""

from __future__ import print_function

import json
import os

from fast_test_database import fast_test_database

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

SECRET_KEY = 'secret'

INSTALLED_APPS = ()

MIDDLEWARE_CLASSES = ()

ROOT_URLCONF = 'test_app.urls'

WSGI_APPLICATION = 'test_app.wsgi.application'

DATABASES = json.loads(os.environ['DATABASES'])

DATABASES = fast_test_database(DATABASES)

# Print the database configuration for testing
print("--- database configuration ---")
print(json.dumps(DATABASES))
print("--- end database configuration ---")