Skip to content

Commit 6984320

Browse files
committed
Add Limit Params and Fix Some Tests
1 parent 2305e3f commit 6984320

File tree

5 files changed

+31
-2
lines changed

5 files changed

+31
-2
lines changed

open/core/betterself/tests/views/test_supplement_log_views.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
from django.contrib.auth import get_user_model
2+
from rest_framework.reverse import reverse
23

34
from test_plus import TestCase
45

@@ -203,3 +204,20 @@ def test_edit_supplement_log_with_supplement_stack(self):
203204

204205
response = self.client_1.post(update_url, data=data)
205206
self.assertEqual(response.status_code, 400)
207+
208+
def test_supplement_log_with_list_view_limit(self):
209+
self.model_class_factory.create_batch(50, user=self.user_1)
210+
url_with_params = self.url + "?limit=5"
211+
212+
response = self.client_1.get(url_with_params)
213+
data = response.data
214+
215+
self.assertEqual(len(data), 5)
216+
217+
def test_supplement_log_with_list_view_invalid_limitparam(self):
218+
self.model_class_factory.create_batch(50, user=self.user_1)
219+
url_with_params = self.url + "?limit=DONKEYKONG"
220+
221+
response = self.client_1.get(url_with_params)
222+
# invalid param should return 400
223+
self.assertEqual(response.status_code, 400)

open/core/betterself/tests/views/test_supplement_stack_composition_views.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@ def test_create_view_with_duplication_data_change_quantity(self):
132132
self.assertEqual(response.status_code, 200)
133133

134134
# now create a composition with supplement 2
135-
supplement_2 = SupplementFactory(user=self.user_1)
135+
supplement_2 = SupplementFactory(user=self.user_1, name="Not Supplement 1")
136136
self.assertNotEqual(supplement_1, supplement_2)
137137

138138
supplement_2_uuid = str(supplement_2.uuid)

open/core/betterself/tests/views/test_supplement_stack_views.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ def test_get_view_with_supplement_compositions(self):
5151
)
5252

5353
# sometimes the randomness makes it not quite equal to how many we wanted to create
54-
created_comps_length = len(created_comps)
54+
created_comps_length = len(set(created_comps))
5555

5656
url = stack.get_update_url()
5757
response = self.client_1.get(url)

open/core/betterself/views/mixins.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import logging
22

3+
from rest_framework.exceptions import ValidationError
34
from rest_framework.generics import get_object_or_404
45
from rest_framework.response import Response
56
from rest_framework.views import APIView
@@ -38,6 +39,15 @@ def get(self, request):
3839
if self.prefetch_related_models:
3940
instances = instances.prefetch_related(*self.prefetch_related_models)
4041

42+
limit_params = request.query_params.get("limit")
43+
if limit_params:
44+
try:
45+
limit_params = int(limit_params)
46+
except ValueError:
47+
raise ValidationError("Invalid Limit Param Entered - Must Be An Integer")
48+
49+
instances = instances[:limit_params]
50+
4151
serializer = self.read_serializer_class(instances, many=True)
4252
data = serializer.data
4353
return Response(data=data)

requirements/base.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,3 +63,4 @@ xlrd==1.2.0
6363
XlsxWriter==1.2.9
6464
yarl==1.3.0
6565
zope.interface==4.6.0
66+
tblib==1.7.0 # use for parallel traceback exceptions

0 commit comments

Comments
 (0)