def testConvertAllQueriesWithUnqualifiedTermFields(self):
        cq = ComposedQuery('coreA')
        cq.setCoreQuery(core='coreA', query='Q0')
        cq.addFilterQuery('coreA', 'Q1')
        cq.addFilterQuery('coreA', 'Q2')
        cq.setCoreQuery(core='coreB', query='Q3')
        cq.addFilterQuery('coreB', 'Q4')
        cq.addMatch(dict(core='coreA', uniqueKey='keyA'),
                    dict(core='coreB', key='keyB'))
        cq.addUnite(dict(core='coreA', query='Q5'),
                    dict(core='coreB', query='Q6'))
        cq.unqualifiedTermFields = [('field0', 2.0), ('field1', 3.0)]

        convertCoreA = lambda query, unqualifiedTermFields=None, **kwargs: "Converted_A_{0}_{1}".format(
            query, not unqualifiedTermFields is None)
        convertCoreB = lambda query, **kwargs: "Converted_B_{0}".format(query)
        cq.convertWith(coreA=convertCoreA, coreB=convertCoreB)

        self.assertEquals("Converted_A_Q0_True", cq.queryFor('coreA'))
        self.assertEquals(["Converted_A_Q1_True", "Converted_A_Q2_True"],
                          cq.filterQueriesFor('coreA'))
        self.assertEquals("Converted_B_Q3", cq.queryFor('coreB'))
        self.assertEquals(["Converted_B_Q4"], cq.filterQueriesFor('coreB'))
        self.assertEqual(1, len(cq.unites))
        uniteQueries = list(cq.unites[0].queries())
        self.assertEquals('Converted_A_Q5_True', uniteQueries[0][0]['query'])
        self.assertEquals('Converted_B_Q6', uniteQueries[1][0]['query'])
 def testAddOtherCoreFacetFilter(self):
     cq = ComposedQuery('coreA')
     cq.addOtherCoreFacetFilter('coreB', 'field=value')
     self.assertValidateRaisesValueError(cq, "No match set for cores ('coreA', 'coreB')")
     cq.addMatch(dict(core='coreA', uniqueKey='kA'), dict(core='coreB', key='kB'))
     self.assertEquals(['field=value'], cq.otherCoreFacetFiltersFor('coreB'))
     cq.convertWith(coreB=lambda q: "converted_" + q)
     self.assertEquals(['converted_field=value'], cq.otherCoreFacetFiltersFor('coreB'))
 def testAddDrilldownQuery(self):
     cq = ComposedQuery('coreA')
     cq.addDrilldownQuery('coreB', ('field', ['value']))
     self.assertValidateRaisesValueError(cq, "No match set for cores ('coreA', 'coreB')")
     cq.addMatch(dict(core='coreA', uniqueKey='kA'), dict(core='coreB', key='kB'))
     self.assertEquals([('field', ['value'])], cq.drilldownQueriesFor('coreB'))
     cq.convertWith(coreB=lambda q: "converted_" + q)
     self.assertEquals([('field', ['value'])], cq.drilldownQueriesFor('coreB'))
 def testAddRankQuery(self):
     cq = ComposedQuery('coreA')
     cq.setRankQuery('coreB', 'qB')
     self.assertValidateRaisesValueError(cq, "No match set for cores ('coreA', 'coreB')")
     cq.addMatch(dict(core='coreA', uniqueKey='kA'), dict(core='coreB', key='kB'))
     self.assertEquals('qB', cq.rankQueryFor('coreB'))
     cq.convertWith(coreB=lambda q: "converted_" + q)
     self.assertEquals('converted_qB', cq.rankQueryFor('coreB'))
 def testAddDrilldownQuery(self):
     cq = ComposedQuery('coreA')
     cq.addDrilldownQuery('coreB', ('field', ['value']))
     self.assertValidateRaisesValueError(cq, "No match set for cores ('coreA', 'coreB')")
     cq.addMatch(dict(core='coreA', uniqueKey='kA'), dict(core='coreB', key='kB'))
     self.assertEquals([('field', ['value'])], cq.drilldownQueriesFor('coreB'))
     cq.convertWith(coreB=lambda q: "converted_" + q)
     self.assertEquals([('field', ['value'])], cq.drilldownQueriesFor('coreB'))
 def testAddRankQuery(self):
     cq = ComposedQuery('coreA')
     cq.setRankQuery('coreB', 'qB')
     self.assertValidateRaisesValueError(cq, "No match set for cores ('coreA', 'coreB')")
     cq.addMatch(dict(core='coreA', uniqueKey='kA'), dict(core='coreB', key='kB'))
     self.assertEquals('qB', cq.rankQueryFor('coreB'))
     cq.convertWith(coreB=lambda q: "converted_" + q)
     self.assertEquals('converted_qB', cq.rankQueryFor('coreB'))
 def testAddFilterQueryAfterConversion(self):
     cq = ComposedQuery('coreA')
     cq.setCoreQuery('coreA', query='A')
     cq.convertWith(coreA=lambda q: "converted_" + q)
     self.assertEquals('converted_A', cq.queryFor('coreA'))
     # Assert the following does not raise KeyError
     cq.addFilterQuery('coreA', 'field=value')
     cq.addFacet('coreA', 'F0')
     cq.addDrilldownQuery('coreA', 'drilldownQuery')
     cq.addOtherCoreFacetFilter('coreA', 'q')
 def testAddFilterQueryAfterConversion(self):
     cq = ComposedQuery('coreA')
     cq.setCoreQuery('coreA', query='A')
     cq.convertWith(coreA=lambda q, **kwargs: "converted_" + q)
     self.assertEquals('converted_A', cq.queryFor('coreA'))
     # Assert the following does not raise KeyError
     cq.addFilterQuery('coreA', 'field=value')
     cq.addFacet('coreA', 'F0')
     cq.addDrilldownQuery('coreA', 'drilldownQuery')
     cq.addOtherCoreFacetFilter('coreA', 'q')
 def testAddOtherCoreFacetFilter(self):
     cq = ComposedQuery('coreA')
     cq.addOtherCoreFacetFilter('coreB', 'field=value')
     self.assertValidateRaisesValueError(
         cq, "No match set for cores ('coreA', 'coreB')")
     cq.addMatch(dict(core='coreA', uniqueKey='kA'),
                 dict(core='coreB', key='kB'))
     self.assertEquals(['field=value'],
                       cq.otherCoreFacetFiltersFor('coreB'))
     cq.convertWith(coreB=lambda q: "converted_" + q)
     self.assertEquals(['converted_field=value'],
                       cq.otherCoreFacetFiltersFor('coreB'))
    def testConvertAllQueries(self):
        cq = ComposedQuery('coreA')
        cq.setCoreQuery(core='coreA', query='Q0')
        cq.addFilterQuery('coreA', 'Q1')
        cq.addFilterQuery('coreA', 'Q2')
        cq.setCoreQuery(core='coreB', query='Q3')
        cq.addFilterQuery('coreB', 'Q4')
        cq.addMatch(dict(core='coreA', uniqueKey='keyA'), dict(core='coreB', key='keyB'))
        cq.addUnite(dict(core='coreA', query='Q5'), dict(core='coreB', query='Q6'))
        convertCoreA = lambda query: "Converted_A_{0}".format(query)
        convertCoreB = lambda query: "Converted_B_{0}".format(query)
        cq.convertWith(coreA=convertCoreA, coreB=convertCoreB)

        self.assertEquals("Converted_A_Q0", cq.queryFor('coreA'))
        self.assertEquals(["Converted_A_Q1", "Converted_A_Q2"], cq.filterQueriesFor('coreA'))
        self.assertEquals("Converted_B_Q3", cq.queryFor('coreB'))
        self.assertEquals(["Converted_B_Q4"], cq.filterQueriesFor('coreB'))
        self.assertEquals([('coreA', 'Converted_A_Q5'), ('coreB', 'Converted_B_Q6')], cq.unites)
Example #11
0
    def testConvertAllQueriesWithUnqualifiedTermFields(self):
        cq = ComposedQuery('coreA')
        cq.setCoreQuery(core='coreA', query='Q0')
        cq.addFilterQuery('coreA', 'Q1')
        cq.addFilterQuery('coreA', 'Q2')
        cq.setCoreQuery(core='coreB', query='Q3')
        cq.addFilterQuery('coreB', 'Q4')
        cq.addMatch(dict(core='coreA', uniqueKey='keyA'), dict(core='coreB', key='keyB'))
        cq.addUnite(dict(core='coreA', query='Q5'), dict(core='coreB', query='Q6'))
        cq.unqualifiedTermFields = [('field0', 2.0), ('field1', 3.0)]

        convertCoreA = lambda query, unqualifiedTermFields=None, **kwargs: "Converted_A_{0}_{1}".format(query, not unqualifiedTermFields is None)
        convertCoreB = lambda query, **kwargs: "Converted_B_{0}".format(query)
        cq.convertWith(coreA=convertCoreA, coreB=convertCoreB)

        self.assertEquals("Converted_A_Q0_True", cq.queryFor('coreA'))
        self.assertEquals(["Converted_A_Q1_True", "Converted_A_Q2_True"], cq.filterQueriesFor('coreA'))
        self.assertEquals("Converted_B_Q3", cq.queryFor('coreB'))
        self.assertEquals(["Converted_B_Q4"], cq.filterQueriesFor('coreB'))
        self.assertEqual(1, len(cq.unites))
        uniteQueries = list(cq.unites[0].queries())
        self.assertEquals('Converted_A_Q5_True', uniteQueries[0][0]['query'])
        self.assertEquals('Converted_B_Q6', uniteQueries[1][0]['query'])