Skip to content

Commit 3e5703f

Browse files
authored
Add UpdateByQueryResponse.success()
1 parent f856f5d commit 3e5703f

File tree

3 files changed

+17
-0
lines changed

3 files changed

+17
-0
lines changed

elasticsearch_dsl/response/__init__.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,3 +113,6 @@ def __init__(self, search, response, doc_class=None):
113113
super(AttrDict, self).__setattr__("_search", search)
114114
super(AttrDict, self).__setattr__("_doc_class", doc_class)
115115
super(UpdateByQueryResponse, self).__init__(response)
116+
117+
def success(self):
118+
return not self.timed_out and not self.failures

tests/test_integration/test_update_by_query.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ def test_update_by_query_no_script(write_client, setup_ubq_tests):
3535
assert response.updated == 52
3636
assert response.deleted == 0
3737
assert response.took > 0
38+
assert response.success()
3839

3940

4041
def test_update_by_query_with_script(write_client, setup_ubq_tests):
@@ -69,3 +70,4 @@ def test_delete_by_query_with_script(write_client, setup_ubq_tests):
6970

7071
assert response.total == 1
7172
assert response.deleted == 1
73+
assert response.success()

tests/test_update_by_query.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
from copy import deepcopy
1919

2020
from elasticsearch_dsl import Q, UpdateByQuery
21+
from elasticsearch_dsl.response import UpdateByQueryResponse
2122

2223

2324
def test_ubq_starts_with_no_query():
@@ -159,3 +160,14 @@ def test_overwrite_script():
159160
} == ubq.to_dict()
160161
ubq = ubq.script(source="ctx._source.likes++")
161162
assert {"script": {"source": "ctx._source.likes++"}} == ubq.to_dict()
163+
164+
165+
def test_update_by_query_response_success():
166+
ubqr = UpdateByQueryResponse({}, {"timed_out": False, "failures": []})
167+
assert ubqr.success()
168+
169+
ubqr = UpdateByQueryResponse({}, {"timed_out": True, "failures": []})
170+
assert not ubqr.success()
171+
172+
ubqr = UpdateByQueryResponse({}, {"timed_out": False, "failures": [{}]})
173+
assert not ubqr.success()

0 commit comments

Comments
 (0)