def test_save_data_minimal(self): """ Verify that an item is created in database if only required fields are available """ mock_result = { "products": [{ "categories": "category", "product_name_fr": "name", "brands": "brand", "quantity": "quantity", "nutrition_grade_fr": "e", "url": "url", "code": "code", "nutriments": {} }] } pre_cat = Categories.objects.all() self.assertEqual(len(pre_cat), 0) controllers.save_data(mock_result["products"]) saved_item = Products.objects.all().first() post_cat = Categories.objects.all() self.assertEqual(len(post_cat), 1) self.assertTrue(saved_item.category, "category") self.assertTrue(saved_item.name, "name") self.assertTrue(saved_item.brand, "brand") self.assertTrue(saved_item.quantity, "quantity") self.assertTrue(saved_item.rating, "e") self.assertTrue(saved_item.url, "url")
def test_save_data_with_image(self): """ Verify that an item is created in database with an image if the image url is available in API response """ mock_result = { "products": [{ "categories": "category", "product_name_fr": "name", "brands": "brand", "quantity": "quantity", "nutrition_grade_fr": "e", "url": "url", "image_url": "image_url", "code": "code", "nutriments": {} }] } controllers.save_data(mock_result["products"]) saved_item = Products.objects.all().first() self.assertTrue(saved_item.image, "image_url")
def test_save_data_category_exists(self): """ Verify that if the category exists, no new category is created when an item is created """ mock_result = { "products": [{ "categories": "category", "product_name_fr": "name", "brands": "brand", "quantity": "quantity", "nutrition_grade_fr": "e", "url": "url", "code": "code", "nutriments": {} }] } Categories.objects.create(name="category") controllers.save_data(mock_result["products"]) categories = Categories.objects.all() self.assertEqual(len(categories), 1)
def test_save_data_with_serving_size(self): """ Verify that an item is created in database with a nutritional value serving size if the field serving size is available in API response """ mock_result = { "products": [{ "categories": "category", "product_name_fr": "name", "brands": "brand", "quantity": "quantity", "nutrition_grade_fr": "e", "url": "url", "code": "code", "serving_size": "serving_size", "nutriments": {} }] } controllers.save_data(mock_result["products"]) saved_item = Products.objects.all().first() nutrival = NutritionalValues.objects.filter(pid=saved_item.id).first() self.assertTrue(nutrival.serving_size, "serving_size")