def test_boolean_query(self):
        prefix_q = cbft.PrefixQuery('someterm', boost=2)
        bool_q = cbft.BooleanQuery(must=prefix_q,
                                   must_not=prefix_q,
                                   should=prefix_q)
        exp = {'prefix': 'someterm', 'boost': 2.0}
        self.assertEqual({'conjuncts': [exp]}, bool_q.must.encodable)
        self.assertEqual({
            'min': 1,
            'disjuncts': [exp]
        }, bool_q.should.encodable)
        self.assertEqual({
            'min': 1,
            'disjuncts': [exp]
        }, bool_q.must_not.encodable)

        # Test multiple criteria in must and must_not
        pq_1 = cbft.PrefixQuery('someterm', boost=2)
        pq_2 = cbft.PrefixQuery('otherterm')
        bool_q = cbft.BooleanQuery(must=[pq_1, pq_2])
        exp = {
            'conjuncts': [{
                'prefix': 'someterm',
                'boost': 2.0
            }, {
                'prefix': 'otherterm'
            }]
        }
        self.assertEqual({'must': exp}, bool_q.encodable)
 def test_conjunction_query(self):
     cq = cbft.ConjunctionQuery()
     self.assertRaises(cbft.NoChildrenError, getattr, cq, 'encodable')
     cq.conjuncts.append(cbft.PrefixQuery('somePrefix'))
     self.assertEqual({'conjuncts': [{
         'prefix': 'somePrefix'
     }]}, cq.encodable)
Ejemplo n.º 3
0
    def test_disjunction_query(self):
        dq = cbft.DisjunctionQuery()
        self.assertEqual(1, dq.min)
        self.assertRaises(cbft.NoChildrenError, getattr, dq, 'encodable')

        dq.disjuncts.append(cbft.PrefixQuery('somePrefix'))
        self.assertEqual({'min': 1, 'disjuncts': [{'prefix': 'somePrefix'}]},
                         dq.encodable)
        self.assertRaises(ValueError, setattr, dq, 'min', 0)
        dq.min = 2
        self.assertRaises(cbft.NoChildrenError, getattr, dq, 'encodable')
 def test_prefix_query(self):
     pq = cbft.PrefixQuery('someterm', boost=1.5)
     self.assertEqual({'prefix': 'someterm', 'boost': 1.5}, pq.encodable)