Пример #1
0
    def test_pre_write_to_full_table_q2(self):
        qids.reset_atomic_qid_seen()
        qids.reset_full_qid_seen()
        entry = qr.QueryResultBase._pre_write_to_full_table(
            self._query2, self._result2)

        matching_record_ids = self._result2[rdb.DBF_MATCHINGRECORDIDS]
        matching_records = len(matching_record_ids)
        gold = \
            { rdb.DBF_FQID : self._query2[qs.QRY_QID],
              rdb.DBF_CAT : self._query2[qs.QRY_CAT],
              rdb.DBF_SUBCAT : self._query2[qs.QRY_SUBCAT],
              rdb.DBF_NUMRECORDS : self._query2[qs.QRY_DBNUMRECORDS],
              rdb.DBF_RECORDSIZE : self._query2[qs.QRY_DBRECORDSIZE],
              rdb.DBF_WHERECLAUSE : self._query2[qs.QRY_WHERECLAUSE],
              rdb.DBF_IBM1SUPPORTED : "IBM1" in self._query2[qs.QRY_PERF],
              rdb.DBF_IBM2SUPPORTED : "IBM2" in self._query2[qs.QRY_PERF],
              rdb.DBF_COLUMBIASUPPORTED : "COL" in self._query2[qs.QRY_PERF],
              rdb.DBF_NUMMATCHINGRECORDS : matching_records,
              rdb.DBF_MATCHINGRECORDIDS : matching_record_ids,
              rdb.DBF_P1NEGATEDTERM : self._query2[qs.QRY_NEGATEDTERMS],
              rdb.DBF_P1NUMTERMSPERCLAUSE :
                  self._query2[qs.QRY_NUMTERMSPERCLAUSE],
              rdb.DBF_P1NUMCLAUSES : self._query2[qs.QRY_NUMCLAUSES] }
        gold[rdb.DBF_SELECTSTAR] = entry[rdb.DBF_SELECTSTAR]
        self.assertEqual(entry, gold)
Пример #2
0
    def test_process_repeat_query(self):
        ''' test process_query with repeats'''
        qids.reset_atomic_qid_seen()
        qids.reset_full_qid_seen()
        query_result = qr.P9AlarmQueryResult(self.query1, self.result1, None,
                                             True)

        (atomic_entry, full_entry, full_to_atomic_entry, full_to_full_entry) = \
            query_result.process_query()
        full_entry[rdb.DBF_SELECTSTAR] = True
        self.assertEqual(atomic_entry, self.query1_atomic_entry)
        self.assertEqual(full_entry, self.query1_full_entry)
        self.assertEqual(full_to_atomic_entry,
                         self.query1_full_to_atomic_entry)
        self.assertEqual(full_to_full_entry, {})

        # test again but pass in None for results
        query_result = qr.EqualityQueryResult(self.query1, None, None, True)

        (atomic_entry, full_entry, full_to_atomic_entry, full_to_full_entry) = \
            query_result.process_query()
        self.assertEqual(atomic_entry, {})
        self.assertEqual(full_entry, {})
        self.assertEqual(full_to_atomic_entry, {})
        self.assertEqual(full_to_full_entry, {})
Пример #3
0
    def test_process_query(self):
        ''' test process_query '''
        qids.reset_atomic_qid_seen()
        qids.reset_full_qid_seen()
        query_result = qr.P3P4P6P7QueryResult(self.__query1, self.__result1,
                                              None, True)

        (atomic_entry, full_entry, full_to_atomic_entry, full_to_full_entry) = \
            query_result.process_query()
        full_entry[rdb.DBF_SELECTSTAR] = True
        self.assertEqual(atomic_entry, self.__query1_atomic_entry)
        self.assertEqual(full_entry, self.__query1_full_entry)
        self.assertEqual(full_to_atomic_entry,
                         self.__query1_full_to_atomic_entry)
        self.assertEqual(full_to_full_entry, {})

        # test again but pass in None for results
        qids.reset_atomic_qid_seen()
        qids.reset_full_qid_seen()
        query_result = qr.P3P4P6P7QueryResult(self.__query1, None, None, True)
        (atomic_entry, full_entry, full_to_atomic_entry, full_to_full_entry) = \
            query_result.process_query()
        full_entry[rdb.DBF_SELECTSTAR] = True
        self.assertEqual(atomic_entry, self.__query1_atomic_entry_no_matches)
        self.assertEqual(full_entry, self.__query1_full_entry_no_matches)
        self.assertEqual(full_to_atomic_entry,
                         self.__query1_full_to_atomic_entry)
        self.assertEqual(full_to_full_entry, {})
Пример #4
0
 def test_write_query(self):
     ''' test write_query '''
     qids.reset_atomic_qid_seen()
     qids.reset_full_qid_seen()
     db_name = ':memory:'
     db_object = ta1_database.Ta1ResultsDB(db_name)
     query_result = qr.P9AlarmQueryResult(self.query1, self.result1,
                                          db_object, True)
     query_result.write_query()
     db_object.close()
Пример #5
0
    def test_process_query(self):
        ''' test process_query '''
        qids.reset_atomic_qid_seen()
        qids.reset_full_qid_seen()
        query_result = qr.P9AlarmQueryResult(self.query1, self.result1, None,
                                             True)

        (atomic_entry, full_entry, full_to_atomic_entry, full_to_full_entry) = \
            query_result.process_query()
        full_entry[rdb.DBF_SELECTSTAR] = True
        self.assertEqual(atomic_entry, self.query1_atomic_entry)
        self.assertEqual(full_entry, self.query1_full_entry)
        self.assertEqual(full_to_atomic_entry,
                         self.query1_full_to_atomic_entry)
        self.assertEqual(full_to_full_entry, {})
Пример #6
0
    def test_write_to_full_table_q1(self):
        qids.reset_atomic_qid_seen()
        qids.reset_full_qid_seen()
        db_name = ':memory:'
        db_object = ta1_database.Ta1ResultsDB(db_name)

        qr.QueryResultBase.write_to_full_table(self._query1, self._result1,
                                               db_object)

        db_object._execute("SELECT * FROM " + rdb.DBF_TABLENAME)
        rows = db_object._fetchall()
        self.assertEqual(len(rows), 1)

        fields = [ \
            (rdb.DBF_FQID, 1),
            (rdb.DBF_CAT, self._query1[qs.QRY_CAT]),
            (rdb.DBF_SUBCAT, self._query1[qs.QRY_SUBCAT]),
            (rdb.DBF_NUMRECORDS, self._query1[qs.QRY_DBNUMRECORDS]),
            (rdb.DBF_RECORDSIZE, self._query1[qs.QRY_DBRECORDSIZE]),
            (rdb.DBF_WHERECLAUSE, self._query1[qs.QRY_WHERECLAUSE]),
            (rdb.DBF_NUMMATCHINGRECORDS,  2),
            (rdb.DBF_MATCHINGRECORDIDS, "1|3" ),
            (rdb.DBF_P1NUMTERMSPERCLAUSE,
             self._query1[qs.QRY_NUMTERMSPERCLAUSE]),
            (rdb.DBF_P1ANDNUMRECORDSMATCHINGFIRSTTERM,
             self._result1[qs.QRY_NUMRECORDSMATCHINGFIRSTTERM]),
            (rdb.DBF_P1NUMCLAUSES, self._query1[qs.QRY_NUMCLAUSES]),
            (rdb.DBF_IBM1SUPPORTED,  "IBM1" in self._query1[qs.QRY_PERF]),
            (rdb.DBF_IBM2SUPPORTED, "IBM2" in self._query1[qs.QRY_PERF]),
            (rdb.DBF_COLUMBIASUPPORTED, "COL" in self._query1[qs.QRY_PERF]) ]

        for field, gold in fields:
            cmd = "SELECT " + field + " FROM " + rdb.DBF_TABLENAME
            db_object._execute(cmd)
            row = db_object._fetchone()
            # note: row is a tuple, we want the first element
            self.assertEqual(row[0], gold)

        db_object.close()
Пример #7
0
 def testAtomicQID(self):
     qids.reset_atomic_qid_seen()
     self.assertEqual(qids.atomic_qid_seen(100), False)
     self.assertEqual(qids.atomic_qid_seen(100), True)
     qids.reset_atomic_qid_seen()
     self.assertEqual(qids.atomic_qid_seen(100), False)