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)