Skip to content

Commit 5fd1f97

Browse files
author
Konstantinos Bairaktaris
authored
Merge pull request #93 from besfahbod/limit-1
api/jsonapi: Add .limit() to Resource/Collection
2 parents f329972 + 22bd459 commit 5fd1f97

3 files changed

Lines changed: 33 additions & 1 deletion

File tree

tests/api/test_queryset.py

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -180,3 +180,33 @@ def test_include():
180180
item1, item2 = test_api.Item.list()
181181
assert item1.tag.name == "tag1"
182182
assert item2.tag.name == "tag2"
183+
184+
185+
@responses.activate
186+
def test_limit():
187+
responses.add(
188+
responses.GET,
189+
"{}/items".format(host),
190+
json={"data": payloads[1:5]},
191+
match_querystring=True,
192+
)
193+
responses.add(
194+
responses.GET,
195+
"{}/items?limit=2".format(host),
196+
json={"data": payloads[1:3]},
197+
match_querystring=True,
198+
)
199+
200+
all_items = test_api.Item.list()
201+
limited_items = test_api.Item.limit(2)
202+
203+
assert len(all_items) == 4
204+
assert len(limited_items) == 2
205+
206+
assert list(limited_items) == all_items[:2]
207+
208+
assert (
209+
list(test_api.Item.limit(2))
210+
== list(test_api.Item.list().limit(2))
211+
== list(test_api.Item.list().limit(5).limit(2))
212+
)

transifex/api/jsonapi/collections.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -180,12 +180,13 @@ def page(self, *args, **kwargs):
180180
def _param_method(param_name):
181181
def _method(self, *fields):
182182
params = dict(self._params)
183-
params[param_name] = ",".join(fields)
183+
params[param_name] = ",".join((str(field) for field in fields))
184184
return self.__class__(self.API, self._url, params)
185185

186186
return _method
187187

188188
include = _param_method("include")
189+
limit = _param_method("limit")
189190
sort = _param_method("sort")
190191
fields = _param_method("fields")
191192

transifex/api/jsonapi/resources.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -405,6 +405,7 @@ def _method(cls, *args, **kwargs):
405405
filter = _collection_method("filter")
406406
page = _collection_method("page")
407407
include = _collection_method("include")
408+
limit = _collection_method("limit")
408409
sort = _collection_method("sort")
409410
fields = _collection_method("fields")
410411
extra = _collection_method("extra")

0 commit comments

Comments
 (0)