Enforce usage of sqlite3 for running tests

- Simplifies tests by creating a database in memory
- Does not affect the user setup at all
This commit is contained in:
Oliver Walters 2019-08-15 21:57:34 +10:00
parent 9f5325d61f
commit 41bfdc1432

View File

@ -159,16 +159,28 @@ WSGI_APPLICATION = 'InvenTree.wsgi.application'
DATABASES = {}
# Database backend selection
if 'database' in CONFIG:
DATABASES['default'] = CONFIG['database']
else:
eprint("Warning: Database backend not specified - using default (sqlite)")
"""
When running unit tests, enforce usage of sqlite3 database,
so that the tests can be run in RAM without any setup requirements
"""
if 'test' in sys.argv:
eprint('Running tests - Using sqlite3 memory database')
DATABASES['default'] = {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'inventree_db.sqlite3'),
'NAME': 'test_db.sqlite3'
}
# Database backend selection
else:
if 'database' in CONFIG:
DATABASES['default'] = CONFIG['database']
else:
eprint("Warning: Database backend not specified - using default (sqlite)")
DATABASES['default'] = {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'inventree_db.sqlite3'),
}
CACHES = {
'default': {
'BACKEND': 'django.core.cache.backends.locmem.LocMemCache',