예제 #1
0
    def post(cls):
        try:
            if request.json is None:
                return error_415()
        except BadRequest:
            return error_415()

        try:
            validate(request.json, schema=meal_schema())
        except (SchemaError, ValidationError):
            return error_400()

        meal_id = request.json['id']
        meal_name = request.json['name']
        meal_servings = request.json['servings']

        meal = Meal(id=meal_id, name=meal_name, servings=meal_servings)

        if 'description' in request.json.keys():
            meal.description = request.json['description']

        db.session.add(meal)
        try:
            db.session.commit()
        except IntegrityError:
            db.session.rollback()
            return error_409()

        h = add_mason_response_header()
        h.add('Location', api.url_for(MealItem, handle=meal.id))

        return Response(status=201, headers=h)
def add_meal_to_db(meal_id):
    m = Meal()
    m.id = meal_id
    m.name = "Oatmeal"
    m.servings = 4
    m.description = "Simple breakfast Oatmeal cooked in water"
    db.session.add(m)
    db.session.commit()
def test_meal_creation(app):
    with app.app_context():
        meal = Meal()
        meal.id = "123"
        meal.name = "Soup"
        meal.servings = 2  # 2 servings
        db.session.add(meal)
        db.session.commit()
        # And with optional fields
        a = Meal()
        a.id = "127"
        a.name = "Oatmeal"
        a.servings = 3  # 3 servings
        a.description = "Juha's morning oatmeal that he eats every morning"
        db.session.add(a)
        db.session.commit()

        db.session.delete(meal)
        db.session.delete(a)
        db.session.commit()