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 ---")