def test_max_quantity(self): 'Is AddToCartForm works with correct product stock value' form = AddToCartForm(self.post, cart=self.cart, product=stock_product) self.assertTrue(form.is_valid()) form.save() form = AddToCartForm(self.post, cart=self.cart, product=stock_product) self.assertTrue(form.is_valid()) form.save() product_quantity = self.cart.get_line(stock_product).quantity self.assertEqual(product_quantity, 10, '%s is the bad quantity value' % (product_quantity,))
def test_max_quantity(self): 'Is AddToCartForm works with correct product stock value' form = AddToCartForm(self.post, cart=self.cart, product=stock_product) self.assertTrue(form.is_valid()) form.save() form = AddToCartForm(self.post, cart=self.cart, product=stock_product) self.assertTrue(form.is_valid()) form.save() product_quantity = self.cart.get_line(stock_product).quantity self.assertEqual(product_quantity, 10, '%s is the bad quantity value' % (product_quantity, ))
def test_too_big_quantity(self): 'Is AddToCartForm works with not correct quantity value' form = AddToCartForm({'quantity': 15}, cart=self.cart, product=stock_product) self.assertFalse(form.is_valid()) self.assertFalse(self.cart)
def post(self, request): add_to_cart_form = AddToCartForm(request.POST) if add_to_cart_form.is_valid(): add_item_to_cart(request.cart, get_object_or_404(Item, pk=add_to_cart_form.cleaned_data['item_id']), add_to_cart_form.cleaned_data['amount']) return redirect('item_list')
def add_to_cart_old(request): cart, created = CartModel.objects.get_or_create(user=request.user) context = {'success': False} logger.debug("ajax-add-to-cart") if request.method == 'POST': postdata = request.POST.copy() form = AddToCartForm(postdata) if form.is_valid(): product = form.cleaned_data['product'] result, cart = cart_service.add_to_cart(cart, product) if result: context['success'] = True context['status'] = True #return redirect(product.get_absolute_url()) else: context['error'] = 'Form is invalid' context['status'] = False messages.error(request, message="Invalid Form") #if request.is_ajax(): # return JsonResponse(context,status=HTTPStatus.BAD_REQUEST) else: context['error'] = 'Bad Request' context['status'] = False return redirect('catalog:home')
def test_quantity(self): 'Is AddToCartForm works with correct quantity value on empty cart' form = AddToCartForm(self.post, cart=self.cart, product=stock_product) self.assertTrue(form.is_valid()) self.assertFalse(self.cart) form.save() product_quantity = self.cart.get_line(stock_product).quantity self.assertEqual(product_quantity, 5, 'Bad quantity')
def test_clean_quantity_product(self): 'Is AddToCartForm works with not stocked product' cart = Cart() self.post['quantity'] = 10000 form = AddToCartForm(self.post, cart=cart, product=digital_product) self.assertTrue(form.is_valid(), 'Form doesn\'t valitate') self.assertFalse(cart, 'Cart isn\'t empty') form.save() self.assertTrue(cart, 'Cart is empty')
def add_product(request, product_id): product = Product.objects.filter(pk=product_id) if product.exists(): cart = Cart(request) form = AddToCartForm(request.POST) if form.is_valid(): cd = form.cleaned_data cart.add(product=product[0], quantity=cd['quantity'], is_update=cd['is_update']) print(cart.cart.values()) url = request.META['HTTP_REFERER'] return redirect(url)
def add_to_cart(request): order = get_order(request) if not order: order = Order.objects.create() request.session['order_id'] = order.id form = AddToCartForm(request.POST) if form.is_valid(): product = form.cleaned_data['product'] order_position, created = OrderPosition.objects.get_or_create( product=product, order=order, ) order_position.count += 1 order_position.save() print(form.errors) return redirect('cart')