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 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 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 testJoinFacetWithJoinDrilldownQueryFilters(self):
     q = ComposedQuery('coreA', query=luceneQueryFromCql('M=true'))
     q.addDrilldownQuery('coreB', drilldownQuery=('cat_O', ['true']))
     q.addFacet('coreB', dict(fieldname='cat_O', maxTerms=10))
     q.addMatch(dict(core='coreA', uniqueKey=KEY_PREFIX + 'A'), dict(core='coreB', key=KEY_PREFIX + 'B'))
     result = returnValueFromGenerator(self.dna.any.executeComposedQuery(query=q))
     self.assertEquals(2, result.total)
     self.assertEquals([{
             'terms': [
                 {'count': 3, 'term': u'true'},
             ],
             'path': [],
             'fieldname': u'cat_O'
         }], result.drilldownData)
 def testJoinDrilldownQueryFilters(self):
     q = ComposedQuery('coreA', query=luceneQueryFromCql('M=true'))
     q.addDrilldownQuery('coreB', drilldownQuery=('cat_O', ['true']))
     q.addMatch(dict(core='coreA', uniqueKey=KEY_PREFIX + 'A'), dict(core='coreB', key=KEY_PREFIX + 'B'))
     result = returnValueFromGenerator(self.dna.any.executeComposedQuery(query=q))
     self.assertEquals(2, result.total)