예제 #1
0
def clone(id):
    cart = Cart.query.get_or_404(id)
    foods = cart.foods.all()

    # clone cart
    cart_copy = Cart()
    cart_copy.user = current_user

    for food in foods:
        food_copy = FoodItem(name=food.name,
                             img_url=food.img_url,
                             nf_calories=food.nf_calories,
                             nf_total_fat=food.nf_total_fat,
                             nf_saturated_fat=food.nf_saturated_fat,
                             nf_cholesterol=food.nf_cholesterol,
                             nf_sodium=food.nf_sodium,
                             nf_total_carbohydrate=food.nf_total_carbohydrate,
                             nf_dietary_fiber=food.nf_dietary_fiber,
                             nf_sugars=food.nf_sugars,
                             nf_protein=food.nf_protein,
                             serving_unit=food.serving_unit,
                             serving_qty=food.serving_qty)
        food_copy.cart = cart_copy
        db.session.add(food_copy)

    cart_copy.update_nutrients()
    db.session.add(cart_copy)
    db.session.commit()

    flash('Cart Has Been Cloned And Added To Your Carts')
    return redirect(url_for('carts.cart', id=cart_copy.id))
예제 #2
0
  def test_update_nutrients(self):
    food1 = FoodItem(name='food1',
    img_url="",
    nf_calories=Decimal(1),
    nf_total_fat=Decimal(2),
    nf_cholesterol=Decimal(3),
    nf_saturated_fat=Decimal(4),
    nf_sodium=Decimal(5),
    nf_total_carbohydrate=Decimal(6),
    nf_dietary_fiber=Decimal(7),
    nf_sugars=Decimal(8),
    nf_protein=Decimal(9))

    food2 = FoodItem(name='food2',
    img_url="",
    nf_calories=Decimal(11),
    nf_total_fat=Decimal(12),
    nf_cholesterol=Decimal(13),
    nf_saturated_fat=Decimal(14),
    nf_sodium=Decimal(15),
    nf_total_carbohydrate=Decimal(16),
    nf_dietary_fiber=Decimal(17),
    nf_sugars=Decimal(18),
    nf_protein=Decimal(19))

    cart2 = Cart()
    food1.cart = cart2
    food2.cart = cart2

    cart2.update_nutrients()
    self.assertTrue(cart2.nf_calories == Decimal(12))
    self.assertTrue(cart2.nf_total_fat == Decimal(14))
    self.assertTrue(cart2.nf_cholesterol == Decimal(16))
    self.assertTrue(cart2.nf_saturated_fat == Decimal(18))
    self.assertTrue(cart2.nf_sodium == Decimal(20))
    self.assertTrue(cart2.nf_total_carbohydrate == Decimal(22))
    self.assertTrue(cart2.nf_dietary_fiber == Decimal(24))
    self.assertTrue(cart2.nf_sugars == Decimal(26))
    self.assertTrue(cart2.nf_protein == Decimal(28))
예제 #3
0
    def setUp(self):
        self.app = create_app('testing')
        self.app_context = self.app.app_context()
        self.app_context.push()
        db.create_all()
        self.client = self.app.test_client(use_cookies=True)

        user = User(email="*****@*****.**", username="******", password="******")

        # Add carts to user
        cart1 = Cart()
        cart2 = Cart()
        cart3 = Cart()
        cart4 = Cart()
        cart5 = Cart()
        cart1.user = user
        cart2.user = user
        cart3.user = user
        cart4.user = user
        cart5.user = user

        # Add foods to cart1 and cart2
        food1 = FoodItem(name='food1',
                         img_url="",
                         nf_calories=Decimal(1),
                         nf_total_fat=Decimal(2),
                         nf_cholesterol=Decimal(3),
                         nf_saturated_fat=Decimal(4),
                         nf_sodium=Decimal(5),
                         nf_total_carbohydrate=Decimal(6),
                         nf_dietary_fiber=Decimal(7),
                         nf_sugars=Decimal(8),
                         nf_protein=Decimal(9),
                         serving_qty=Decimal(1),
                         serving_unit="Serving")

        food2 = FoodItem(name='food2',
                         img_url="",
                         nf_calories=Decimal(11),
                         nf_total_fat=Decimal(12),
                         nf_cholesterol=Decimal(13),
                         nf_saturated_fat=Decimal(14),
                         nf_sodium=Decimal(15),
                         nf_total_carbohydrate=Decimal(16),
                         nf_dietary_fiber=Decimal(17),
                         nf_sugars=Decimal(18),
                         nf_protein=Decimal(19),
                         serving_qty=Decimal(1),
                         serving_unit="Serving")

        food1.cart = cart1
        food2.cart = cart1
        cart1.update_nutrients()
        cart2.update_nutrients()

        user2 = User(email='*****@*****.**', username='******', password='******')
        cart6 = Cart()
        cart6.user = user2

        db.session.add_all([
            user, user2, cart1, cart2, cart3, cart4, cart5, cart6, food1, food2
        ])
        db.session.commit()