class TestRecipeSerializer(APITestCase):
    fixtures = ['user_single.json', 'baked_chicken.json', 'baked_chicken_image.json']

    def setUp(self):
        self.model = models.Recipe.objects.all()[0]
        self.serializer = RecipeSerializer(self.model)

    def test_get_image_url(self):
        url = self.serializer.get_image_url(self.model)
        self.assertEqual(url, "/media/download_1orK6GT.jpg")

    def test_get_user_name(self):
        name = self.serializer.get_user_name(self.model)
        self.assertEqual(name, 'ichiro1')
示例#2
0
 def post(self, request, format='json'):
     """Creates recipe, post api request"""
     try:
         recipe_data = self.parse_json(request)
     except ValueError as e:
         return Response(str(e), status.HTTP_400_BAD_REQUEST)
     # Check for duplicate
     if Recipe.objects.filter(Name=recipe_data['Name']).exists():
         return Response('Duplicate recipe named ' + recipe_data['Name'],
                         status=status.HTTP_409_CONFLICT)
     recipe_serializer = RecipeSerializer(data=recipe_data)
     if recipe_serializer.is_valid():
         recipe_serializer.save()
         return Response('Added Successfully!',
                         status=status.HTTP_201_CREATED)
     return Response(recipe_serializer.data,
                     status=status.HTTP_400_BAD_REQUEST)
示例#3
0
 def put(self, request):
     """Updates a recipe, put request"""
     try:
         recipe_data = self.parse_json(request)
     except ValueError as e:
         return Response(str(e), status.HTTP_400_BAD_REQUEST)
     try:
         recipe = Recipe.objects.get(Name=recipe_data.get('Name'))
     except Recipe.DoesNotExist:
         return Response(recipe_data, status=status.HTTP_404_NOT_FOUND)
     # only let them modify it if they created it!
     if recipe.Creator_id != recipe_data['Creator']:
         return Response(status=status.HTTP_403_FORBIDDEN)
     recipe_serializer = RecipeSerializer(recipe, data=recipe_data)
     if recipe_serializer.is_valid():
         recipe_serializer.save()
         return Response('Successfully updated!', status=status.HTTP_200_OK)
     return Response(recipe_data, status=status.HTTP_400_BAD_REQUEST)
示例#4
0
 def get(self, request, *args, **kwargs):
     """
     Recipe API for getting the backend recipes
     :param **kwargs can have a name parameter to specify a recipe to get
     """
     name = self.kwargs.get('name')
     if name is None:
         recipes = Recipe.objects.all()
         recipe_serializer = RecipeSerializer(recipes, many=True)
         return JsonResponse(recipe_serializer.data, safe=False)
     else:
         try:
             recipe = Recipe.objects.get(Name=name)
             recipe_serializer = RecipeSerializer(recipe)
             return JsonResponse(recipe_serializer.data)
         except Recipe.DoesNotExist:
             return Response('Recipe not found',
                             status=status.HTTP_404_NOT_FOUND)
 def setUp(self):
     self.model = models.Recipe.objects.all()[0]
     self.serializer = RecipeSerializer(self.model)