def prepare_create_receipt() -> tuple: first_ingredient = Ingredient(name='Name', calories=200) session.add(first_ingredient) second_ingredient = Ingredient(name='Name1', calories=201) session.add(second_ingredient) session.commit() first_step = 'First step' second_step = 'Second step' return first_ingredient, second_ingredient, first_step, second_step
def add_recipe(): data = request.data recipe_data = json.loads(data.decode("utf-8")) recipe = Recipe(title=recipe_data['title'], instructions=recipe_data['instructions'], img=recipe_data['img'], type=recipe_data['type'], time=recipe_data['time'], people=recipe_data['people'], owner=recipe_data['owner']) db_session.add(recipe) for ingredient in recipe_data['ingredients']: ingredient = Ingredient(item=ingredient['item'], quantity=ingredient['quantity']) db_session.add(ingredient) recipe.ingredients.append(ingredient) try: db_session.commit() except Exception: db_session.rollback() clear_sessions() return return_result(data=recipe_data)
def test_create_ingredients(): ingredient = Ingredient(name='Name', calories=120) session.add(ingredient) session.commit() actual = session.query(Ingredient).count() expected = 1 assert actual == expected
def post(self) -> dict: create_params = self.create_params() ingredient = Ingredient(**create_params) session.add(ingredient) session.commit() ingredient = IngredientClientSchema().dump(ingredient) response = BasicResponse(ingredient) return BasicResponseSchema().dump(response)
def test_delete(test_client: FlaskClient, admin_headers: dict): ingredient = Ingredient(name='Name', calories=200) session.add(ingredient) session.commit() test_client.delete(f"/api/admin/v1/ingredients/{ingredient.id}/", headers=admin_headers) actual = session.query(Ingredient).count() expected = 0 assert actual == expected
def test_show(test_client: FlaskClient, admin_headers: dict): ingredient = Ingredient(name='Name', calories=200) session.add(ingredient) session.commit() response = test_client.get(f"/api/admin/v1/ingredients/{ingredient.id}/", headers=admin_headers) actual = response.json['result'] expected = IngredientClientSchema().dump(ingredient) assert actual == expected
def test_count(test_client: FlaskClient, admin_headers: dict): ingredient = Ingredient(name='Name', calories=200) session.add(ingredient) session.commit() response = test_client.get('/api/admin/v1/ingredients/', headers=admin_headers) actual = len(response.json['result']) expected = 1 assert actual == expected
def test_update(test_client: FlaskClient, admin_headers: dict): ingredient = Ingredient(name='Name', calories=200) session.add(ingredient) session.commit() data = ({ "name": "Name111", "calories": 2001, }) response = test_client.put(f"/api/admin/v1/ingredients/{ingredient.id}/", json=data, headers=admin_headers) actual = response.json['result'] expected = IngredientClientSchema().dump(ingredient) assert actual == expected
def add_recipe(): data = request.data recipe_data = json.loads(data.decode("utf-8")) if not recipe_data['img'].startswith("https://res.cloudinary.com/" + config.CLOUD_NAME + "/image/upload/"): return return_result(message="Je hebt geen geldig plaatje geupload.", code=500, status="failure") recipe = Recipe(title=replacer(recipe_data['title']), instructions=replacer(recipe_data['instructions']), img=recipe_data['img'], type=recipe_data['type'], time=replacer(recipe_data['time']), people=recipe_data['people'], vegan=recipe_data['vegan'], owner=replacer(recipe_data['owner']), approved=False, likes=0) db_session.add(recipe) for ingredient in recipe_data['ingredients']: ingredient = Ingredient(item=replacer(ingredient['item']), quantity=replacer(ingredient['quantity'])) db_session.add(ingredient) recipe.ingredients.append(ingredient) try: db_session.commit() clear_sessions() return return_result(data=recipe_data) except Exception: db_session.rollback() clear_sessions() return return_result( message="Je bereidingswijze is te lang, kort hem a.u.b. wat in.", code=500, status="failure")
def execute_before_any_test(): IngredientsReceipts.truncate() UsersReceipts.truncate() Receipt.truncate() Ingredient.truncate() User.truncate()