示例#1
0
 def test_has_aggregation_results_wrong_agg_name(self):
     agg_name = "results"
     expected = [{EsAggregation.KEY: SOME_KEY, EsAggregation.DOC_COUNT: 1}]
     wrong_agg_name = "wrong_agg"
     agg_results = self.create_agg_results(agg_name, expected)
     result = EsUtils.has_aggregation_results(agg_results, wrong_agg_name)
     self.assertFalse(result)
示例#2
0
 def test_has_aggregation_results_true(self):
     agg_name = "results"
     actual_results = [{
         EsAggregation.KEY: SOME_KEY,
         EsAggregation.DOC_COUNT: 1
     }]
     agg_results = self.create_agg_results(agg_name, actual_results)
     result = EsUtils.has_aggregation_results(agg_results, agg_name)
     self.assertTrue(result)
示例#3
0
 def test_is_get_query_with_results_valid_response_returns_true(self):
     es_get_response = {
         EsDocProperties.TYPE: "type",
         EsDocProperties.INDEX: "index",
         EsConst.FIELDS: {},
         EsDocProperties.VERSION: 1,
         EsConst.FOUND: True,
         EsDocProperties.ID: "id"
     }
     self.assertTrue(EsUtils.is_get_query_with_results(es_get_response))
示例#4
0
 def test_extract_hits_bad_results(self):
     not_hits_results = {
         EsDocProperties.SCROLL_ID: 12345,
         EsConst.SHARDS: {
             EsConst.FAILED: 0,
             EsConst.TOTAL: 2
         }
     }
     extracted_results = EsUtils.extract_hits(not_hits_results)
     self.assertEqual([], extracted_results)
示例#5
0
    def _scroll_next_results(self):
        results = yield self._es.scroll(str(self._scroll_id), scroll=self._scroll)
        hits = EsUtils.extract_hits(results)

        # No more results
        if len(hits) < self._size:
            self._scroll_id = None
        else:
            self._scroll_id = results.get(EsDocProperties.SCROLL_ID, None)

        returnValue(hits)
示例#6
0
 def next(self):
     """Fetch next page from scroll API."""
     d = None
     if self._first_results:
         d = succeed(EsUtils.extract_hits(self._first_results))
         self._first_results = None
     elif self._scroll_id:
         d = self._scroll_next_results()
     else:
         raise StopIteration()
     return d
示例#7
0
 def test_extract_aggregation_results_has_results(self):
     agg_name = "results"
     expected = [{EsAggregation.KEY: SOME_KEY, EsAggregation.DOC_COUNT: 1}]
     agg_results = self.create_agg_results(agg_name, expected)
     result = EsUtils.extract_aggregation_results(agg_results, agg_name)
     self.assertEquals(result, expected)
示例#8
0
 def test_has_aggregation_none_results_false(self):
     agg_name = "results"
     agg_results = None
     result = EsUtils.has_aggregation_results(agg_results, agg_name)
     self.assertFalse(result)
示例#9
0
 def test_has_aggregation_results_false(self):
     agg_name = "results"
     agg_results = self.create_agg_results(agg_name, [])
     result = EsUtils.has_aggregation_results(agg_results, agg_name)
     self.assertFalse(result)
示例#10
0
 def test_has_results_invalid_results(self):
     invalid_result = {EsDocProperties.SCROLL_ID: 12345}
     self.assertFalse(EsUtils.has_results(invalid_result))
示例#11
0
 def test_has_results_good_results(self):
     result_hits = [{'filed': 'value'}]
     good_result = self.create_results(result_hits)
     self.assertTrue(EsUtils.has_results(good_result))
示例#12
0
 def test_extract_aggregation_results_no_results(self):
     agg_name = "results"
     expected = []
     agg_results = self.create_agg_results(agg_name, expected)
     result = EsUtils.extract_aggregation_results(agg_results, agg_name)
     self.assertEquals(result, expected)
示例#13
0
 def test_extract_hits(self):
     result_hits = [{'filed': 'value'}]
     good_result = self.create_results(result_hits)
     extracted_results = EsUtils.extract_hits(good_result)
     self.assertEqual(result_hits, extracted_results)