def test_attach_database(self): fLOG(__file__, self._testMethodName, OutputPrint=__name__ == "__main__", LogFile="temp_hal_log2.txt") filename = os.path.join(os.path.split( __file__)[0], "data", "database_linked.zip") temp = get_temp_folder(__file__, "temp_attach_database") filename = unzip(filename, temp) assert os.path.exists(filename) file2 = os.path.join(os.path.split(__file__)[ 0], "data", "database_linked_cor.zip") temp = get_temp_folder(__file__, "temp_attach_database") file2 = unzip(file2, temp) assert os.path.exists(file2) # method 1 attach = {"seco": file2} db = Database(filename, attach=attach, LOG=fLOG) db.connect() sql = "SELECT COUNT(*) FROM seco.word_QSSH" vie = db.execute_view(sql) self.assertEqual(len(vie), 1) db.close() # method 2 all = filename + " ; seco , " + file2 db = Database(all, LOG=fLOG) db.connect() sql = "SELECT COUNT(*) FROM seco.word_QSSH" vi2 = db.execute_view(sql) self.assertEqual(len(vi2), 1) self.assertEqual(vi2, vie) att = db.get_attached_database_list() self.assertEqual(att, ['seco']) ts = db.get_table_list(True) self.assertEqual(ts, ['seco.query', 'seco.idx_query_query', 'seco.qtok', 'seco.idx_qtok_qtok', 'seco.pairs', 'seco.pairs_query___q1', 'seco.bucket', 'seco.idx_bucket_bucket', 'seco.url', 'seco.idx_url_url', 'seco.profile', 'seco.profile_query___', 'seco.profile_QRW2', 'seco.profile_QRW2_query___', 'seco.profile_QSSH', 'seco.profile_QSSH_query___', 'seco.query_QRW2', 'seco.query_QRW2_query___', 'seco.query_QSSH', 'seco.query_QSSH_query___', 'seco.url_QRW2', 'seco.url_QRW2_url___', 'seco.url_QSSH', 'seco.url_QSSH_url___', 'seco.word', 'seco.idx_word_word', 'seco.word_QRW2', 'seco.word_QRW2_word___', 'seco.word_QSSH', 'seco.word_QSSH_word___']) assert "db.attach_database" in db.get_python_code()[1] assert db.has_table("seco.word_QSSH_word___") files = db.get_file(True) file = db.get_file() assert file in files for alias, file in db.get_attached_database_list(True): assert alias in files assert file in files db2 = Database(files, LOG=fLOG) db2.connect() db2.close() db.close()
def test_attach_database(self): fLOG(__file__, self._testMethodName, OutputPrint=__name__ == "__main__", LogFile="temp_hal_log2.txt") filename = os.path.join( os.path.split(__file__)[0], "data", "database_linked.zip") temp = get_temp_folder(__file__, "temp_attach_database") filename = unzip(filename, temp) assert os.path.exists(filename) file2 = os.path.join( os.path.split(__file__)[0], "data", "database_linked_cor.zip") temp = get_temp_folder(__file__, "temp_attach_database") file2 = unzip(file2, temp) assert os.path.exists(file2) # method 1 attach = {"seco": file2} db = Database(filename, attach=attach, LOG=fLOG) db.connect() sql = "SELECT COUNT(*) FROM seco.word_QSSH" vie = db.execute_view(sql) self.assertEqual(len(vie), 1) db.close() # method 2 all = filename + " ; seco , " + file2 db = Database(all, LOG=fLOG) db.connect() sql = "SELECT COUNT(*) FROM seco.word_QSSH" vi2 = db.execute_view(sql) self.assertEqual(len(vi2), 1) self.assertEqual(vi2, vie) att = db.get_attached_database_list() self.assertEqual(att, ['seco']) ts = db.get_table_list(True) self.assertEqual(ts, [ 'seco.query', 'seco.idx_query_query', 'seco.qtok', 'seco.idx_qtok_qtok', 'seco.pairs', 'seco.pairs_query___q1', 'seco.bucket', 'seco.idx_bucket_bucket', 'seco.url', 'seco.idx_url_url', 'seco.profile', 'seco.profile_query___', 'seco.profile_QRW2', 'seco.profile_QRW2_query___', 'seco.profile_QSSH', 'seco.profile_QSSH_query___', 'seco.query_QRW2', 'seco.query_QRW2_query___', 'seco.query_QSSH', 'seco.query_QSSH_query___', 'seco.url_QRW2', 'seco.url_QRW2_url___', 'seco.url_QSSH', 'seco.url_QSSH_url___', 'seco.word', 'seco.idx_word_word', 'seco.word_QRW2', 'seco.word_QRW2_word___', 'seco.word_QSSH', 'seco.word_QSSH_word___' ]) assert "db.attach_database" in db.get_python_code()[1] assert db.has_table("seco.word_QSSH_word___") files = db.get_file(True) file = db.get_file() assert file in files for alias, file in db.get_attached_database_list(True): assert alias in files assert file in files db2 = Database(files, LOG=fLOG) db2.connect() db2.close() db.close()