def test(self): """ funcion para realizar el test Author: Javier Gomez """ price = 1.1 stock = 10 units1 = 1 units5 = 5 cat = self.add_cat("cat_1") prod = self.add_product(cat, "prod", "descript", price, stock) response = self._client.get(reverse('product_list')) request = response.wsgi_request #create shopping cart _shoppingcart = ShoppingCart(request) _shoppingcart.addProduct(prod, units=units1) _price = request.session[_shoppingcart.cartKey][str(prod.id)]['price'] _units = request.session[_shoppingcart.cartKey][str(prod.id)]['units'] cart = request.session.get('shoppingCart') self.assertEquals(_shoppingcart.cart, cart) _shoppingcart.clear() self.assertFalse('shoppingCart' in request.session)
def test_shoppingCartListWeb(self): # CREATE SESSION prodName1 = "prod1" prodName2 = "prod2" price1 = Decimal(1.1) price2 = Decimal(2.2) stock = 10 units1 = 3 units2 = 5 cat = self.add_cat("cat_1") prod1 = self.add_product(cat, prodName1, "descript1", price1, stock) prod2 = self.add_product(cat, prodName2, "descript2", price2, stock) response1 = self._client.get(reverse('product_list')) request = response1.wsgi_request # create shopping cart _shoppingcart = ShoppingCart(request) _shoppingcart.addProduct(prod1, units=units1) _shoppingcart.addProduct(prod2, units=units2) #list shopping cart response2 = shoppingcart_list(request) f = open("/tmp/delete.html", 'wb') f.write(response2.content) f.close() from selenium import webdriver import time driver = os.path.join(BASE_DIR, "chromedriver") #driver = webdriver.Chrome() #driver.get("file:///tmp/delete.html") self.assertTrue(True) time.sleep(20)
def shoppingcart_add(request,product_id): """ vista para procesar un formulario para meter un producto en el carrito de la compra Author: Javier Gomez """ try: product = Product.objects.get(id=product_id) except ObjectDoesNotExist: return redirect('product_list') shoppingcart=ShoppingCart(request) form = CartAddProductForm() if request.method == 'POST': form = CartAddProductForm(request.POST) if form.is_valid(): units = form.cleaned_data['units'] update = form.cleaned_data['update'] else: return redirect('product_list') else: return redirect('product_list') try: shoppingcart.addProduct(product=product, units=units, update_units=update) except: return render(request, "shop/error.html", {'error' : "not enough stock left for:", 'products' : [product], 'category': None}) return redirect('shoppingcart_list')
def test_shoppingCartList(self): # CREATE SESSION prodName1 = "prod1" prodName2 = "prod2" price1 = Decimal(1.1) price2 = Decimal(2.2) stock = 10 units1 = 3 units2 = 5 cat = self.add_cat("cat_1") prod1 = self.add_product(cat, prodName1, "descript1", price1, stock) prod2 = self.add_product(cat, prodName2, "descript2", price2, stock) response1 = self._client.get(reverse('product_list')) request = response1.wsgi_request # create shopping cart _shoppingcart = ShoppingCart(request) _shoppingcart.addProduct(prod1, units=units1) _shoppingcart.addProduct(prod2, units=units2) #list shopping cart response2 = shoppingcart_list(request) self.assertIn(prodName1, response2.content) self.assertIn(prodName2, response2.content) self.assertNotIn("prod3", response2.content)
def test_shoppingCartTotalPrice(self): # CREATE SESSION price1 = Decimal(1.1) price2 = Decimal(2.2) stock = 10 units1 = 3 units2 = 5 cat = self.add_cat("cat_1") prod1 = self.add_product(cat, "prod1", "descript1", price1, stock) prod2 = self.add_product(cat, "prod2", "descript2", price2, stock) response = self._client.get(reverse('product_list')) request = response.wsgi_request # create shopping cart _shoppingcart = ShoppingCart(request) _shoppingcart.addProduct(prod1, units=units1) _shoppingcart.addProduct(prod2, units=units2) totalPrice = _shoppingcart.get_total_price() self.assertEqual(totalPrice, price1 * units1 + price2 * units2)
def test_shoppingCartLen(self): #CREATE SESSION price = 1.1 stock = 10 cat = self.add_cat("cat_1") prod1 = self.add_product(cat, "prod1", "descript1", price, stock) prod2 = self.add_product(cat, "prod2", "descript2", price, stock) response = self._client.get(reverse('product_list')) request = response.wsgi_request #create shopping cart _shoppingcart = ShoppingCart(request) _shoppingcart.addProduct(prod1, units=3) _shoppingcart.addProduct(prod2, units=5) #get number of items in sopping cart _len = len(_shoppingcart) self.assertEqual(_len, 8) self.assertNotEqual(_len, 2)
def test_shoppingCartAdd(self): #CREATE SESSION price = 1.1 stock = 10 units1 = 1 units5 = 5 cat = self.add_cat("cat_1") prod = self.add_product(cat, "prod", "descript", price, stock) response = self._client.get(reverse('product_list')) request = response.wsgi_request #create shopping cart _shoppingcart = ShoppingCart(request) _shoppingcart.addProduct(prod, units=units1) _price = request.session[_shoppingcart.cartKey][str(prod.id)]['price'] _units = request.session[_shoppingcart.cartKey][str(prod.id)]['units'] self.assertAlmostEquals(_price, str(price)) self.assertEquals(_units, units1) #update shopping cart 1 _shoppingcart.addProduct(prod, units=units5, update_units=False) _price = request.session[_shoppingcart.cartKey][str(prod.id)]['price'] _units = request.session[_shoppingcart.cartKey][str(prod.id)]['units'] self.assertEquals(_units, units1 + units5) #update shopping cart 2 _shoppingcart.addProduct(prod, units=units5, update_units=True) _units = request.session[_shoppingcart.cartKey][str(prod.id)]['units'] self.assertEquals(_units, units5)
def test_shoppingCartRemoveProduct(self): #CREATE SESSION price = 1.1 stock = 10 cat = self.add_cat("cat_1") prod1 = self.add_product(cat, "prod1", "descript1", price, stock) prod2 = self.add_product(cat, "prod2", "descript2", price, stock) response = self._client.get(reverse('product_list')) request = response.wsgi_request #create shopping cart _shoppingcart = ShoppingCart(request) _shoppingcart.addProduct(prod1) _shoppingcart.addProduct(prod2) key1 = str(prod1.id) key2 = str(prod2.id) #remove product _shoppingcart.removeProduct(prod1) _sessionCartDict = request.session[_shoppingcart.cartKey] self.assertFalse(key1 in _sessionCartDict) self.assertTrue(key2 in _sessionCartDict)