Răsfoiți Sursa

HUE-8532 [core] Fix database migration test.

jdesjean 7 ani în urmă
părinte
comite
5c3d5d8
1 a modificat fișierele cu 17 adăugiri și 10 ștergeri
  1. 17 10
      desktop/core/src/desktop/tests.py

+ 17 - 10
desktop/core/src/desktop/tests.py

@@ -1422,8 +1422,9 @@ def test_collect_validation_messages_extras():
 def test_db_migrations_sqlite():
   versions = ['5.' + str(i) for i in range(7, 16)]
   for version in versions:
-    name = 'hue_' + version
-    path = get_desktop_root('./core/src/desktop/test_data/' + name + '.db')
+    name = 'hue_' + version + '_' + uuid.uuid4().hex
+    file_name = 'hue_' + version + '.db'
+    path = get_desktop_root('./core/src/desktop/test_data/' + file_name)
     DATABASES[name] = {
       'ENGINE' : 'django.db.backends.sqlite3',
       'NAME' : path,
@@ -1436,15 +1437,20 @@ def test_db_migrations_sqlite():
       'ATOMIC_REQUESTS' : True,
       'CONN_MAX_AGE' : 0,
     }
-    call_command('migrate', '--fake-initial', '--database=' + name)
+    try:
+      call_command('migrate', '--fake-initial', '--database=' + name)
+    finally:
+      del DATABASES[name]
 
 def test_db_migrations_mysql():
   if desktop.conf.DATABASE.ENGINE.get().find('mysql') < 0:
     raise SkipTest
   versions = ['5_' + str(i) for i in range(7, 16)]
+  os.putenv('PATH', '$PATH:/usr/local/bin')
   for version in versions:
-    name = 'hue_' + version
-    path = get_desktop_root('./core/src/desktop/test_data/' + name + '_mysql.sql')
+    file_name = 'hue_' + version + '_mysql.sql'
+    name = 'hue_' + version + '_' + uuid.uuid4().hex
+    path = get_desktop_root('./core/src/desktop/test_data/' + file_name)
     DATABASES[name] = {
       'ENGINE': desktop.conf.DATABASE.ENGINE.get(),
       'NAME': name,
@@ -1458,8 +1464,9 @@ def test_db_migrations_mysql():
       'PATH': path,
       'CONN_MAX_AGE': desktop.conf.DATABASE.CONN_MAX_AGE.get(),
     }
-    os.system('mysql -u%(USER)s -p%(PASSWORD)s -e "DROP DATABASE %(SCHEMA)s"' % DATABASES[name])
-    os.system('mysql -u%(USER)s -p%(PASSWORD)s -e "CREATE DATABASE %(SCHEMA)s"' % DATABASES[name]) # No way to run this command with django
-    os.system('mysql -u%(USER)s -p%(PASSWORD)s %(SCHEMA)s < %(PATH)s' % DATABASES[name])
-    call_command('migrate', '--fake-initial', '--database=%(SCHEMA)s' % DATABASES[name])
-    os.system('mysql -u%(USER)s -p%(PASSWORD)s -e "DROP DATABASE %(SCHEMA)s"' % DATABASES[name])
+    try:
+      os.system('mysql -u%(USER)s -p%(PASSWORD)s -e "CREATE DATABASE %(SCHEMA)s"' % DATABASES[name]) # No way to run this command with django
+      os.system('mysql -u%(USER)s -p%(PASSWORD)s %(SCHEMA)s < %(PATH)s' % DATABASES[name])
+      call_command('migrate', '--fake-initial', '--database=%(SCHEMA)s' % DATABASES[name])
+    finally:
+      del DATABASES[name]