From 41bfdc14325a0e37285f8e06ddc33f91656f0c0a Mon Sep 17 00:00:00 2001 From: Oliver Walters Date: Thu, 15 Aug 2019 21:57:34 +1000 Subject: [PATCH] Enforce usage of sqlite3 for running tests - Simplifies tests by creating a database in memory - Does not affect the user setup at all --- InvenTree/InvenTree/settings.py | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/InvenTree/InvenTree/settings.py b/InvenTree/InvenTree/settings.py index 66f22be9e4..553768beeb 100644 --- a/InvenTree/InvenTree/settings.py +++ b/InvenTree/InvenTree/settings.py @@ -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',