Example #1
0
 def test_multi_script_id(self):
     query_builder = QueryBuilder()
     query_builder.add_filter(ScriptID(
         'name', 'script_id', {"key": 0.5}
     ))
     query_builder.add_filter(ScriptID(
         'name_two', 'script_id_two', {"key_two": 0.4}
     ))
     self.assertEquals(
         query_builder.to_query()['filter'],
         {
             'name': {
                 "script_id": "script_id",
                 "lang": "groovy",
                 "params": {
                     "key": 0.5
                 }
             },
             'name_two': {
                 "script_id": "script_id_two",
                 "lang": "groovy",
                 "params": {
                     "key_two": 0.4
                 }
             }
         }
     )
Example #2
0
    def test_empty_serialization(self):
        query_builder = QueryBuilder()

        # And filter with no nested clauses is empty.
        and_filter = And()
        query_builder.add_filter(and_filter)
        self.assertEqual(
            {},
            query_builder.to_query()['filter']
        )
Example #3
0
 def test_terms(self):
     query_builder = QueryBuilder()
     query_builder.add_filter(Terms(
         'field', 0.5
     ))
     self.assertEquals(
         query_builder.to_query()['filter'],
         {
             "terms": {"field": 0.5}
         }
     )
Example #4
0
 def test_filter_clobber(self):
     query_builder = QueryBuilder()
     query_builder.add_filter(Exists('value'))
     self.assertEquals(
         query_builder.to_query()['filter'],
         {"exists": {"field": "value"}},
     )
     query_builder.add_filter(Exists('value_two'))
     self.assertEquals(
         query_builder.to_query()['filter'],
         {"exists": {"field": "value_two"}},
     )
Example #5
0
 def test_range_partial(self):
     """
     If only a specific range criteria is provided, only it should appear
     in the final query.
     """
     query_builder = QueryBuilder()
     query_builder.add_filter(Range(
         'field', lte=0.5
     ))
     self.assertEquals(
         query_builder.to_query()['filter'],
         {
             "range": {
                 "field": {
                     "lte": 0.5,
                 }
             }
         }
     )
Example #6
0
 def test_range_full(self):
     """
     All valid range comparators should be represented in the final query.
     """
     query_builder = QueryBuilder()
     query_builder.add_filter(Range(
         'field', lte=0.5, lt=0.6, gt=0.7, gte=0.8
     ))
     self.assertEquals(
         query_builder.to_query()['filter'],
         {
             "range": {
                 "field": {
                     "lte": 0.5,
                     "lt": 0.6,
                     "gt": 0.7,
                     "gte": 0.8
                 }
             }
         }
     )