def test_get_content_invalid_token_exp_403(self):
        """Get content with invalid token. Expecting 403 response"""
        request = self.factory.get("/fridge/1")
        request.META["HTTP_AUTHORIZATION"] = "NotAValidToken"

        res = fridge_content.fridge_content_view(request, 1)
        self.assertEqual(res.status_code, status.HTTP_403_FORBIDDEN)
    def test_get_content_user_not_authorized_for_fridge_exp_403(self):
        """Get content with unauthorized user. Expecting 403 response"""
        fridge_id = test_utils.get_fridge("Dummy Fridge").values("fridge_id").first()["fridge_id"]
        request = self.factory.get("/fridge/1")
        request.META["HTTP_AUTHORIZATION"] = "APIToken2"

        res = fridge_content.fridge_content_view(request, fridge_id)
        self.assertEqual(res.status_code, status.HTTP_403_FORBIDDEN)
 def test_add_fridge_content_valid_token_missing_attributes_exp_400(self):
     """Add content with valid token/incomplete body. Expecting 400 response"""
     request = self.factory.post(
         "fridge/1",
         {"name": "Name"},
         content_type="application/json"
     )
     request.META["HTTP_AUTHORIZATION"] = "APIToken"
     response = fridge_content.fridge_content_view(request, 1)
     self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST)
 def test_add_fridge_content_invalid_token_and_request_exp_403(self):
     """Add content with invalid token. Expecting 403 response"""
     request = self.factory.post(
         "fridge/1",
         {},
         content_type="application/json"
     )
     request.META["HTTP_AUTHORIZATION"] = "NotAFuckingToken"
     response = fridge_content.fridge_content_view(request, 1)
     self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN)
    def test_get_content_valid_fridge_token_content_exp_200_content(self):
        """Get content with valid fridge, token. Expecting 200 response"""
        fridge_id = test_utils.get_fridge("Dummy Fridge").values("fridge_id").first()["fridge_id"]
        item_id = test_utils.get_item("Item A").values("item_id").first()["item_id"]
        test_utils.create_fridge_content(item_id, fridge_id)
        request = self.factory.get("/fridge/1")
        request.META["HTTP_AUTHORIZATION"] = "APIToken"

        res = fridge_content.fridge_content_view(request, fridge_id)
        self.assertEqual(res.status_code, status.HTTP_200_OK)
        body = json.loads(res.render().content.decode("utf-8"))
        self.assertEqual(body[0]["name"], "Item A")
 def test_add_fridge_content_no_token_and_valid_request_exp_401(self):
     """Add content with missing token. Expecting 401 response"""
     request = self.factory.post(
         "/fridge/1",
         {
             "name": "Item 1",
             "description": "This is a item",
             "buy_date": "2019-10-17",
             "expiration_date": "2019-11-23",
             "amount": 9,
             "unit": "kg",
             "store": "Rewe"
         },
         content_type="application/json"
     )
     response = fridge_content.fridge_content_view(request, 1)
     self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN)
 def test_add_fridge_content_not_authorized_exp_401(self):
     """Add content with no token. Expecting 401 response"""
     request = self.factory.post(
         "/fridge/1",
         {
             "name": "Item A",
             "description": "This is a item",
             "buy_date": "2019-10-17",
             "expiration_date": "2019-11-23",
             "amount": 9,
             "unit": "kg",
             "store": "Rewe"
         },
         content_type="application/json"
     )
     request.META["HTTP_AUTHORIZATION"] = "APIToken2"
     response = fridge_content.fridge_content_view(request, 1)
     self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN)
 def test_add_fridge_content_valid_token_and_request_exp_201(self):
     """Add content with valid token & body. Expecting 201 response"""
     request = self.factory.post(
         "/fridge/1",
         {
             "name": "Item 1",
             "description": "This is a item",
             "buy_date": "2019-10-17",
             "expiration_date": "2019-11-23",
             "count": 1,
             "amount": 9,
             "unit": "kg",
             "store": "Rewe"
         },
         content_type="application/json"
     )
     request.META["HTTP_AUTHORIZATION"] = "APIToken"
     response = fridge_content.fridge_content_view(request, 1)
     self.assertEqual(response.status_code, status.HTTP_201_CREATED)
    def test_get_content_no_token_exp_403(self):
        """Get content with not token. Expecting 403 response"""
        request = self.factory.get("/fridge/1")

        res = fridge_content.fridge_content_view(request, 1)
        self.assertEqual(res.status_code, status.HTTP_403_FORBIDDEN)