Skip to content

Commit

Permalink
scan and scroll bugfix
Browse files Browse the repository at this point in the history
  • Loading branch information
avihad committed Jul 4, 2016
1 parent bbc69d9 commit 8707ff2
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 16 deletions.
28 changes: 15 additions & 13 deletions tests/test_elasticsearch.py
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,8 @@ def _generate_url(host, port, uri_params, *args):
def test_get_source(self):
self.es._async_http_client.request = MagicMock(return_value=self.generate_response(ResponseCodes.OK))
yield self.es.get_source(SOME_INDEX, SOME_DOC_TYPE, id=SOME_ID)
expected_url = self._generate_url(SOME_HOST, SOME_PORT, None, SOME_INDEX, SOME_DOC_TYPE, SOME_ID, EsMethods.SOURCE)
expected_url = self._generate_url(SOME_HOST, SOME_PORT, None, SOME_INDEX, SOME_DOC_TYPE, SOME_ID,
EsMethods.SOURCE)

self.es._async_http_client.request.assert_called_once_with(HttpMethod.GET, expected_url,
auth=(SOME_USER, SOME_PASS), data=None,
Expand All @@ -109,7 +110,8 @@ def test_update(self):
self.es._async_http_client.request = MagicMock(return_value=self.generate_response(ResponseCodes.OK))
query = {'name': 'joseph', 'last_name': 'smith'}
yield self.es.update(index=SOME_INDEX, doc_type=SOME_DOC_TYPE, id=SOME_ID, body=query)
expected_url = self._generate_url(SOME_HOST, SOME_PORT, None, SOME_INDEX, SOME_DOC_TYPE, SOME_ID, EsMethods.UPDATE)
expected_url = self._generate_url(SOME_HOST, SOME_PORT, None, SOME_INDEX, SOME_DOC_TYPE, SOME_ID,
EsMethods.UPDATE)

self.es._async_http_client.request.assert_called_once_with(HttpMethod.POST, expected_url,
auth=(SOME_USER, SOME_PASS), data=json.dumps(query),
Expand All @@ -120,7 +122,8 @@ def test_explain(self):
self.es._async_http_client.request = MagicMock(return_value=self.generate_response(ResponseCodes.OK))
query = {'name': 'joseph', 'last_name': 'smith'}
yield self.es.explain(index=SOME_INDEX, doc_type=SOME_DOC_TYPE, id=SOME_ID, body=query)
expected_url = self._generate_url(SOME_HOST, SOME_PORT, None, SOME_INDEX, SOME_DOC_TYPE, SOME_ID, EsMethods.EXPLAIN)
expected_url = self._generate_url(SOME_HOST, SOME_PORT, None, SOME_INDEX, SOME_DOC_TYPE, SOME_ID,
EsMethods.EXPLAIN)

self.es._async_http_client.request.assert_called_once_with(HttpMethod.GET, expected_url,
auth=(SOME_USER, SOME_PASS), data=json.dumps(query),
Expand Down Expand Up @@ -253,8 +256,7 @@ def test_scroll(self):
self.es._async_http_client.request = MagicMock(return_value=self.generate_response(ResponseCodes.OK))
scroll_id = '12345'
yield self.es.scroll(scroll_id)
expected_url = self._generate_url(SOME_HOST, SOME_PORT, None, EsMethods.SCROLL)
expected_url = '{host}:{port}/{method}'.format(host=SOME_HOST, port=SOME_PORT, method=quote(EsMethods.SCROLL, '')).encode('utf-8')
expected_url = self._generate_url(SOME_HOST, SOME_PORT, None, EsMethods.SEARCH, EsMethods.SCROLL)
self.es._async_http_client.request.assert_called_once_with(HttpMethod.GET, expected_url,
auth=(SOME_USER, SOME_PASS),
data=scroll_id,
Expand All @@ -265,8 +267,7 @@ def test_clear_scroll(self):
self.es._async_http_client.request = MagicMock(return_value=self.generate_response(ResponseCodes.OK))
scroll_id = '12345'
yield self.es.clear_scroll(scroll_id)

expected_url = '{host}:{port}/{method}'.format(host=SOME_HOST, port=SOME_PORT, method=quote(EsMethods.SCROLL, '')).encode('utf-8')
expected_url = self._generate_url(SOME_HOST, SOME_PORT, None, EsMethods.SEARCH, EsMethods.SCROLL)
self.es._async_http_client.request.assert_called_once_with(HttpMethod.DELETE, expected_url,
auth=(SOME_USER, SOME_PASS),
data=scroll_id,
Expand Down Expand Up @@ -308,7 +309,7 @@ def test_bulk_list(self):
yield self.es.bulk([index_query1, index_query2], SOME_INDEX, SOME_DOC_TYPE)
expected_url = self._generate_url(SOME_HOST, SOME_PORT, None, SOME_INDEX, SOME_DOC_TYPE, EsMethods.BULK)

expected_body='{q1}\n{q2}\n'.format(q1=json.dumps(index_query1), q2=json.dumps(index_query2))
expected_body = '{q1}\n{q2}\n'.format(q1=json.dumps(index_query1), q2=json.dumps(index_query2))
self.es._async_http_client.request.assert_called_once_with(HttpMethod.POST, expected_url,
auth=(SOME_USER, SOME_PASS),
data=expected_body,
Expand All @@ -317,13 +318,14 @@ def test_bulk_list(self):
@inlineCallbacks
def test_msearch_list(self):
self.es._async_http_client.request = MagicMock(return_value=self.generate_response(ResponseCodes.OK))
search_query1 = {'query': {'match':{FIELD_1: "blabla1"}}}
search_query2 = {'query': {'match':{FIELD_1: "blabla2"}}}
search_query1 = {'query': {'match': {FIELD_1: "blabla1"}}}
search_query2 = {'query': {'match': {FIELD_1: "blabla2"}}}
yield self.es.msearch([search_query1, search_query2], SOME_INDEX, SOME_DOC_TYPE)
expected_url = self._generate_url(SOME_HOST, SOME_PORT, None, SOME_INDEX, SOME_DOC_TYPE, EsMethods.MULTIPLE_SEARCH)
expected_url = self._generate_url(SOME_HOST, SOME_PORT, None, SOME_INDEX, SOME_DOC_TYPE,
EsMethods.MULTIPLE_SEARCH)

expected_body='{q1}\n{q2}\n'.format(q1=json.dumps(search_query1), q2=json.dumps(search_query2))
expected_body = '{q1}\n{q2}\n'.format(q1=json.dumps(search_query1), q2=json.dumps(search_query2))
self.es._async_http_client.request.assert_called_once_with(HttpMethod.GET, expected_url,
auth=(SOME_USER, SOME_PASS),
data=expected_body,
timeout=TIMEOUT)
timeout=TIMEOUT)
4 changes: 2 additions & 2 deletions twistes/client.py
Original file line number Diff line number Diff line change
Expand Up @@ -379,7 +379,7 @@ def scroll(self, scroll_id=None, body=None, **query_params):
elif scroll_id:
query_params[EsConst.SCROLL_ID] = scroll_id

path = self._es_parser.make_path(EsMethods.SCROLL)
path = self._es_parser.make_path(EsMethods.SEARCH, EsMethods.SCROLL)
result = yield self._perform_request(HttpMethod.GET, path, body, params=query_params)
returnValue(result)

Expand All @@ -400,7 +400,7 @@ def clear_scroll(self, scroll_id=None, body=None, **query_params):
elif scroll_id:
query_params[EsConst.SCROLL_ID] = scroll_id

path = self._es_parser.make_path(EsMethods.SCROLL)
path = self._es_parser.make_path(EsMethods.SEARCH, EsMethods.SCROLL)
result = yield self._perform_request(HttpMethod.DELETE, path, body, params=query_params)
returnValue(result)

Expand Down
2 changes: 1 addition & 1 deletion twistes/consts.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ class EsMethods(object):
UPDATE = '_update'
SOURCE = '_source'
SEARCH = '_search'
SCROLL = '_search/scroll'
SCROLL = 'scroll'


class EsConst(object):
Expand Down

0 comments on commit 8707ff2

Please sign in to comment.