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)
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)
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))
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)
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)
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
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)
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)
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)
def test_has_results_invalid_results(self): invalid_result = {EsDocProperties.SCROLL_ID: 12345} self.assertFalse(EsUtils.has_results(invalid_result))
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))
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)
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)