Ejemplo n.º 1
0
    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()
Ejemplo n.º 2
0
    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()