def poll_list(request): """ List all snippets, or create a new snippet. """ if request.method == 'GET': snippets = Poll.objects.all() serializer = PollSerializer(snippets, many=True) return Response(serializer.data) elif request.method == 'POST': serializer = PollSerializer(data=request.data) if serializer.is_valid(): serializer.save() return Response(serializer.data, status=status.HTTP_201_CREATED) return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
def poll_detail(request, pk): """ Retrieve, update or delete a snippet instance. """ try: snippet = Poll.objects.get(pk=pk) except Poll.DoesNotExist: return Response(status=status.HTTP_404_NOT_FOUND) if request.method == 'GET': serializer = PollSerializer(snippet) return Response(serializer.data) elif request.method == 'PUT': serializer = PollSerializer(snippet, data=request.data) if serializer.is_valid(): serializer.save() return Response(serializer.data) return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) elif request.method == 'DELETE': snippet.delete() return Response(status=status.HTTP_204_NO_CONTENT)
def test_poll_serializer(self): # write option = PollOptionFactory.create() user = UserFactory.create() data = { 'option': str(option.id), 'user': str(user.id), } serializer = PollSerializer(data=data) serializer.is_valid(raise_exception=True) poll = serializer.save() self.assertEqual(poll.option, option) self.assertEqual(poll.user, user) # no read data = PollSerializer(poll).data self.assertEqual(data, {})