diff options
author | Alexander Sulfrian <alexander.sulfrian@fu-berlin.de> | 2016-09-05 17:36:44 +0200 |
---|---|---|
committer | Alexander Sulfrian <alexander.sulfrian@fu-berlin.de> | 2016-09-12 16:22:28 +0200 |
commit | 007d56a7044b273bf974357149cff616d82ac23f (patch) | |
tree | 9ec4225541719082e015e5cb4651cff184a9d50a | |
parent | 7be65237acd7fe91a6693d9c2518a8a0c849d672 (diff) | |
download | bcfg2-007d56a7044b273bf974357149cff616d82ac23f.tar.gz bcfg2-007d56a7044b273bf974357149cff616d82ac23f.tar.bz2 bcfg2-007d56a7044b273bf974357149cff616d82ac23f.zip |
testsuite: Unlink database before syncing
This prevents false test results with database files staying around in the local
development directory.
-rw-r--r-- | testsuite/common.py | 29 |
1 files changed, 20 insertions, 9 deletions
diff --git a/testsuite/common.py b/testsuite/common.py index 3c0ad82d7..6cb880226 100644 --- a/testsuite/common.py +++ b/testsuite/common.py @@ -223,18 +223,29 @@ class DBModelTestCase(Bcfg2TestCase): import django.core.management from django.core.exceptions import ImproperlyConfigured - if django.VERSION[0] == 1 and django.VERSION[1] < 7: - try: - django.core.management.call_command('syncdb', interactive=False, - verbosity=0) - except ImproperlyConfigured: - pass + dbfile = django.conf.settings.DATABASES['default']['NAME'] + # Close all connections to the old database + if django.VERSION[0] == 1 and django.VERSION[1] >= 7: + for connection in django.db.connections.all(): + connection.close() + else: + django.db.close_connection() + + # Remove old database + if os.path.exists(dbfile): + os.unlink(dbfile) + self.assertFalse(os.path.exists(dbfile)) + + # Create new + if django.VERSION[0] == 1 and django.VERSION[1] < 7: + django.core.management.call_command('syncdb', interactive=False, + verbosity=0) django.core.management.call_command('migrate', interactive=False, verbosity=0) - self.assertTrue( - os.path.exists( - django.conf.settings.DATABASES['default']['NAME'])) + + # Check if database exists now + self.assertTrue(os.path.exists(dbfile)) @skipUnless(has_django, "Django not found, skipping") def test_cleandb(self): |