From 560eed7b40b95f3c5b506b01341fda6d407e3fd1 Mon Sep 17 00:00:00 2001 From: Marnanel Thurman Date: Fri, 28 Feb 2020 01:04:59 +0000 Subject: [PATCH] /api/v1/statuses for all statuses renders into JSON correctly, plus passing test. --- kepi/trilby_api/tests/test_rest.py | 36 ++++++++++++++++++++++++++++++ kepi/trilby_api/views.py | 4 +++- 2 files changed, 39 insertions(+), 1 deletion(-) diff --git a/kepi/trilby_api/tests/test_rest.py b/kepi/trilby_api/tests/test_rest.py index c0d39a4..73d6634 100644 --- a/kepi/trilby_api/tests/test_rest.py +++ b/kepi/trilby_api/tests/test_rest.py @@ -202,6 +202,42 @@ class TestStatuses(TestCase): self.fail('Value of "id" is not a decimal: '+content['id']) + def test_get_all_statuses(self): + + messages = [ + 'Why do I always dress myself in %s?' % (colour,) \ + for colour in ['red', 'green', 'blue', 'black']] + + self._create_alice() + + for message in messages: + create_local_status( + content = message, + posted_by = self._alice, + ) + + request = self.factory.get( + '/api/v1/statuses/', + ) + force_authenticate(request, user=self._alice) + + view = Statuses.as_view() + + result = view(request) + + self.assertEqual( + result.status_code, + 200, + msg = result.content, + ) + + content = json.loads(result.content) + + self.assertEqual( + [x['content'] for x in content], + ['

%s

' % (x,) for x in messages], + ) + def test_get_status_context(self): self._create_alice() diff --git a/kepi/trilby_api/views.py b/kepi/trilby_api/views.py index 6e985ad..a529a13 100644 --- a/kepi/trilby_api/views.py +++ b/kepi/trilby_api/views.py @@ -232,7 +232,9 @@ class Statuses(generics.ListCreateAPIView, many = True, ) - return JsonResponse(serializer.data) + return JsonResponse(serializer.data, + safe = False, # it's a list + ) def create(self, request, *args, **kwargs):