class LoadTestCase(TestCase): def setUp(self): self.path = os.path.join(os.getcwd(), 'assignment_table_load.xls') self.sheet = 2 self.mercent = Merchant(merchant_id='001',merchant_name="test merchant", merchant_address="address") self.mercent.save() self.test_item = Item(item_id="0001",merchant_id="0002",item_name="one Item", item_price=200,merchant_obj=self.mercent) self.test_item.save() self.new_item = Item(item_id="0002",merchant_id="0002",item_name="one Item new", item_price=200,merchant_obj=self.mercent) self.new_item.save() self.cart = Cart(customer="test Customer") self.cart.save() def test_data_found(self): """Data found according to search""" merchant = load_merchant(self.path, 3) item = load_item(self.path, 2) transaction = load_transaction(self.path, 0) sales = load_sales(self.path, 1) assert merchant assert item assert transaction assert sales def test_cart_create(self): row1 = Rows(sn=1,item=self.test_item,quantity=2.5, unit='piece', cart = self.cart) row2 = Rows(sn=2,item=self.test_item,quantity=3.5, unit='piece', cart = self.cart) row3 = Rows(sn=3,item=self.test_item,quantity=42.5, unit='piece', cart = self.cart) row1.save() row2.save() row3.save() assert self.cart.rows.all() assert self.cart.status name = self.cart.item_update(1, self.test_item, self.new_item) assert name == self.new_item.item_name self.cart.cancel() assert not self.cart.status
def setUp(self): self.path = os.path.join(os.getcwd(), 'assignment_table_load.xls') self.sheet = 2 self.mercent = Merchant(merchant_id='001',merchant_name="test merchant", merchant_address="address") self.mercent.save() self.test_item = Item(item_id="0001",merchant_id="0002",item_name="one Item", item_price=200,merchant_obj=self.mercent) self.test_item.save() self.new_item = Item(item_id="0002",merchant_id="0002",item_name="one Item new", item_price=200,merchant_obj=self.mercent) self.new_item.save() self.cart = Cart(customer="test Customer") self.cart.save()
def view_cart(request): if request.method == 'POST' and "submit_order" in request.POST: user = User.objects.get(username=request.user.username) cart = Cart.objects.get(who_id=user) # Check that there are enough ingredients submitted_orders = Orden.objects.filter(cart_id=cart.id) ingredients = Ingrediente.objects.all() # Create dictonary of all ingredients you have ingredient_have_dict = dict() for ingredient in ingredients: ingredient_have_dict[ingredient.name] = ingredient.amount # Create dictionary of all the ingredients you need ingredient_need_dict = dict() for order in submitted_orders: for ing in order.item_id.ingredients.all(): if ing.name not in ingredient_need_dict.keys(): ingredient_need_dict[ing.name] = 1 else: ingredient_need_dict[ing.name] += 1 # Compare the two dictionaries for ingredient_needed in ingredient_need_dict.keys(): if ingredient_need_dict[ingredient_needed] > ingredient_have_dict[ ingredient_needed]: raise Http404("There are not enough " + ingredient_needed + " so this order cannot be processed") # Check that they have enough money if user.creditos != None and user.creditos > cart.order_total: # get the current active carts/order active_carts = Cart.objects.filter(active=True).order_by('when') orders_ahead = len(active_carts) # set this cart and make it active cart.active = True user.creditos -= cart.order_total cart.save() user.save() # estimate using active carts time_estimate = 0 for cart in active_carts: time_estimate += cart.time_total return render( request, 'order_submitted.html', { 'time_estimate': time_estimate, 'user': user, 'cart': cart, 'orders_ahead': orders_ahead }) else: raise Http404( "You do not have enough credits to order this. Please order in person at the Container" ) if request.method == 'POST' and "eliminar" in request.POST: item = str(request.POST.get('item')) # get the current cart of this person cart = Cart.objects.get(who_id=request.user) order_item = ElementosDelMenu.objects.get(name=item) order = Orden.objects.filter(cart_id=cart.id, item_id=order_item) order.delete() cart.save() # to display regular page again user = User.objects.get(username=request.user.username) try: cart = Cart.objects.get(who_id=user.id) orders = list(Orden.objects.filter(cart_id=cart.id)) return render(request, 'view_cart.html', { 'user': user, 'cart': cart, 'orders': orders }) except: cart = Cart(who_id=user) cart.save() return render(request, 'view_cart.html', { 'user': user, 'cart': cart }) else: user = User.objects.get(username=request.user.username) try: cart = Cart.objects.get(who_id=user.id) orders = list(Orden.objects.filter(cart_id=cart.id)) return render(request, 'view_cart.html', { 'user': user, 'cart': cart, 'orders': orders }) except: cart = Cart(who_id=user) cart.save() return render(request, 'view_cart.html', { 'user': user, 'cart': cart })