diff --git a/tests/functional/openlp_core_utils/test_db.py b/tests/functional/openlp_core_utils/test_db.py index 01ed9d0d5..b46e97a80 100644 --- a/tests/functional/openlp_core_utils/test_db.py +++ b/tests/functional/openlp_core_utils/test_db.py @@ -40,11 +40,18 @@ class TestUtilsDBFunctions(TestCase): Create temp folder for keeping db file """ self.tmp_folder = mkdtemp() + db_path = os.path.join(TEST_RESOURCES_PATH, 'songs', 'songs-1.9.7.sqlite') + db_tmp_path = os.path.join(self.tmp_folder, 'songs-1.9.7.sqlite') + shutil.copyfile(db_path, db_tmp_path) + db_url = 'sqlite:///' + db_tmp_path + self.session, metadata = init_db(db_url) + self.op = get_upgrade_op(self.session) def tearDown(self): """ Clean up """ + self.session.close() shutil.rmtree(self.tmp_folder) def delete_column_test(self): @@ -52,18 +59,12 @@ class TestUtilsDBFunctions(TestCase): Test deleting a single column in a table """ # GIVEN: A temporary song db - db_path = os.path.join(TEST_RESOURCES_PATH, 'songs', 'songs-1.9.7.sqlite') - db_tmp_path = os.path.join(self.tmp_folder, 'songs-1.9.7.sqlite') - shutil.copyfile(db_path, db_tmp_path) - db_url = 'sqlite:///' + db_tmp_path - session, metadata = init_db(db_url) - op = get_upgrade_op(session) # WHEN: Deleting a columns in a table - drop_column(op, 'songs', 'song_book_id') + drop_column(self.op, 'songs', 'song_book_id') # THEN: The column should have been deleted - meta = sqlalchemy.MetaData(bind=op.get_bind()) + meta = sqlalchemy.MetaData(bind=self.op.get_bind()) meta.reflect() columns = meta.tables['songs'].columns @@ -76,21 +77,16 @@ class TestUtilsDBFunctions(TestCase): Test deleting multiple columns in a table """ # GIVEN: A temporary song db - db_path = os.path.join(TEST_RESOURCES_PATH, 'songs', 'songs-1.9.7.sqlite') - db_tmp_path = os.path.join(self.tmp_folder, 'songs-1.9.7.sqlite') - shutil.copyfile(db_path, db_tmp_path) - db_url = 'sqlite:///' + db_tmp_path - session, metadata = init_db(db_url) - op = get_upgrade_op(session) # WHEN: Deleting a columns in a table - drop_columns(op, 'songs', ['song_book_id', 'song_number']) + drop_columns(self.op, 'songs', ['song_book_id', 'song_number']) # THEN: The columns should have been deleted - meta = sqlalchemy.MetaData(bind=op.get_bind()) + meta = sqlalchemy.MetaData(bind=self.op.get_bind()) meta.reflect() columns = meta.tables['songs'].columns for column in columns: if column.name == 'song_book_id' or column.name == 'song_number': self.fail("The column '%s' should have been deleted." % column.name) +