Example #1
0
 def put(self, request, pk):
     book = get_object_or_404(erp_models.Book, pk=pk)
     serializer = erp_serializers.BookSerializer(book,
                                                 data=request.data,
                                                 partial=True)
     if serializer.is_valid(raise_exception=True):
         serializer.save()
         return Response(serializer.data)
     return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
    def test_deserialize_invalid_book_with_invalid_choice(self):
        book = {
            'generic_book_id': self.gbook.id,
            'status': 'FREE',
        }

        book_ser = erp_serializers.BookSerializer(data=book)
        with self.assertRaises(ValidationError):
            book_ser.is_valid(raise_exception=True)
        self.assertEqual(
            book_ser.errors,
            {'status': [ErrorDetail(string='"FREE" is not a valid choice.', code='invalid_choice')]}
        )
    def test_deserialize_valid_book(self):
        """A serializer raises the `required` error only if
         1) the field is required by the model,
         2) the field received the DRF argument `required=True`
        """
        book = {
            'generic_book_id': self.gbook.id,
        }

        book_ser = erp_serializers.BookSerializer(data=book)
        book_ser.is_valid(raise_exception=True)
        book = book_ser.save()

        self.assertTrue(isinstance(book, erp_models.Book))
        self.assertEqual(book.status, 'MAINTENANCE')
        self.assertEqual(book.generic_book.title, 'Zero to One')
Example #4
0
 def get(self, request, pk):
     book = get_object_or_404(erp_models.Book, pk=pk)
     serializer = erp_serializers.BookSerializer(book)
     return Response(serializer.data)
Example #5
0
 def post(self, request):
     serializer = erp_serializers.BookSerializer(data=request.data)
     if serializer.is_valid(raise_exception=True):
         serializer.save()
         return Response(serializer.data, status=status.HTTP_201_CREATED)
     return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
Example #6
0
 def get(self, request):
     books = erp_models.Book.objects.all()
     page = self.paginate_queryset(books, request, view=self)
     if page is not None:
         serializer = erp_serializers.BookSerializer(page, many=True)
         return self.get_paginated_response(serializer.data)
    def test_serialize_valid_book(self):
        book = erp_factories.AvailableBookFactory()

        book_ser = erp_serializers.BookSerializer(book)
        self.assertTrue('joined_library_on' in book_ser.data.keys())
        self.assertEqual(book_ser.data['status'], 'AVAILABLE')