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 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 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 shoppingcart_remove(request,product_id): """ Vista para procesar un formulario para eliminar un producto del carrito de la compra Author: Carlos Li """ try: product = Product.objects.get(id=int(product_id)) except ObjectDoesNotExist: return redirect('product_list') shoppingcart=ShoppingCart(request) shoppingcart.removeProduct(product) return redirect('shoppingcart_list')
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)
class ShoppingCartTest(unittest.TestCase): def setUp(self): self.cart = ShoppingCart().add("tuna sandwich", 15.00) def test_length(self): self.assertEquals(1, len(self.cart)) def test_item(self): self.assertEquals("tuna sandwich", self.cart.item(1)) def test_price(self): self.assertEquals(15.00, self.cart.price(1)) def test_total_with_sales_tax(self): self.assertAlmostEquals(16.39, self.cart.total(9.25), 2)
class ShoppingCartTest(unittest.TestCase): def setUp(self): self.cart = ShoppingCart().add("tuna sandwich", 15.00) def test_length(self): self.assertEquals(1, len(self.cart)) def test_item(self): self.assertEquals("tuna sandwich", self.cart.item(1)) def test_price(self): self.assertEquals(15.00, self.cart.price(1)) def test_total_with_sales_tax(self): self.assertAlmostEquals(16.39, \ self.cart.total(9.25), 2) #def test_assert_failure(self): #self.fail("You should see this failure message in the report.")
def enter(self, name): print("Customer %s enters the store." % name) print("Customer takes a shopping cart.") # create a cart and return it as a pyro object to the client cart = ShoppingCart() self.customersInStore[name] = cart return self.__proxyfy(cart)
class CartWithOneItem(unittest.TestCase): def setUp(self): self.cart = ShoppingCart().add("tuna sandwich", 15.00) def test_when_checking_the_size_should_be_one_based(self): self.assertEquals(1, len(self.cart)) # let it fail intentionally self.assertEquals(2, len(self.cart)) def test_when_looking_into_cart_should_be_one_based(self): self.assertEquals("tuna sandwich", self.cart.item(1)) self.assertEquals(15.00, self.cart.price(1)) def test_total_should_have_in_sales_tax(self): self.assertAlmostEquals(15.0*1.0925, self.cart.total(9.25), 2)
def enter(self, name): print("Customer %s enters the store." % name) print("Customer takes a shopping cart.") # create a cart and return it as a pyro object to the client cart = ShoppingCart() self.customersInStore[name] = cart self._pyroDaemon.register(cart) # make cart a pyro object return cart
class CartWithTwoItems(unittest.TestCase): def setUp(self): self.cart = ShoppingCart().add("tuna sandwich", 15.00) \ .add("rootbeer", 3.75) def test_when_checking_size_should_be_two(self): self.assertEquals(2, len(self.cart)) def test_items_should_be_in_same_order_as_entered(self): self.assertEquals("tuna sandwich", self.cart.item(1)) self.assertAlmostEquals(15.00, self.cart.price(1), 2) self.assertEquals("rootbeer", self.cart.item(2)) self.assertAlmostEquals(3.75, self.cart.price(2), 2) def test_total_price_should_have_in_sales_tax(self): self.assertAlmostEquals((15.0+3.75)*1.0925, self.cart.total(9.25), 2)
def shoppingcart_list(request): """ Vista para el fichero list.html que muestra los contenidos el carrito de la compra Author: Carlos Li """ form = CartAddProductForm() _shoppingcart = ShoppingCart(request) return render(request,'shoppingcart/list.html', {'shoppingcart': _shoppingcart, 'form' : form})
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(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)
class CartWithNoItems(unittest.TestCase): def setUp(self): self.cart = ShoppingCart() def test_when_checking_size_should_be_empty(self): self.assertEquals(0, len(self.cart)) def test_finding_item_out_of_range_should_raise_error(self): self.assertRaises(IndexError, self.cart.item, 2) def test_finding_price_out_of_range_should_raise_error(self): self.assertRaises(IndexError, self.cart.price, 2) def test_when_looking_at_total_price_should_be_zero(self): self.assertAlmostEquals(0.0, self.cart.total(9.25), 2) def test_adding_items_returns_back_same_cart(self): empty_cart = self.cart cart_with_one_item = self.cart.add("tuna sandwich", 15.00) self.assertEquals(empty_cart, cart_with_one_item) cart_with_two_items = self.cart.add("rootbeer", 3.75) self.assertEquals(empty_cart, cart_with_one_item) self.assertEquals(cart_with_one_item, cart_with_two_items)
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)
class ShoppingCartTest(unittest.TestCase): def setUp(self): self.shcart = ShoppingCart() def test_deal_discount(self): self.shcart.add_discount(['2013.11.11 | 0.7 | 电子']) ret = self.shcart.deal_discount() self.assertEqual(ret, {'电子': ['2013.11.11', 0.7]}) def test_deal_coupons(self): self.shcart.add_coupon([ '2014.3.2 1000 200', '1999.3.2 2000 500', '2014.5.2 500 50', '2014.3.12 5000 1500' ]) self.shcart.set_paydate('2013.11.11') rets = [] rets.append(self.shcart.deal_coupons(400)) rets.append(self.shcart.deal_coupons(1500)) rets.append(self.shcart.deal_coupons(3000)) self.assertEqual(rets, [0, 200, 200]) def test_compare_date(self): rets = [] rets.append(self.shcart.compare_date('2014.3.2', '2013.11.11')) rets.append(self.shcart.compare_date('2014.3.2', '2014.3.2')) rets.append(self.shcart.compare_date('2014.3.2', '2015.11.11')) self.assertEqual(rets, [1, 0, -1]) def test_add_discount(self): self.shcart.add_discount(['2013.11.11 | 0.7 | 电子']) self.assertEqual(self.shcart.discount_info, ['2013.11.11 | 0.7 | 电子']) def test_add_goods(self): goods = [ '1 * ipad : 2399.00', '1 * 显示器 : 1799.00', '12 * 啤酒 : 25.00', '5 * 面包 : 9.00' ] self.shcart.add_goods(goods) self.assertEqual(self.shcart.goods_info, goods) def test_set_paydate(self): self.shcart.set_paydate('2013.11.11') self.assertEqual(self.shcart.pay_date, '2013.11.11') def test_add_coupon(self): self.shcart.add_coupon(['2014.3.2 1000 200']) self.assertEqual(self.shcart.coupons, ['2014.3.2 1000 200'])
def setUp(self): self.cart = ShoppingCart().add("tuna sandwich", 15.00) \ .add("rootbeer", 3.75)
def setUp(self): self.shcart = ShoppingCart()
def setUp(self): self.cart = ShoppingCart()
allinfo[idx].append(each.strip()) else: idx += 1 except: log.logger.error('deal_file()_%s' % filepath) log.logger.error(traceback.format_exc()) finally: if fileobj: fileobj.close() return allinfo if __name__ == '__main__': filepath = os.path.join(Config.base_path, 'test', 'test_data', 'case_A.txt') # test # filepath = r'' # 添加文件路径或者使用命令行方式输入文件(第一个参数) if len(sys.argv) < 2 and not filepath: print('缺少文件路径参数!') else: if len(sys.argv) > 1: filepath = sys.argv[1] allinfo = deal_file(filepath) shcart = ShoppingCart() shcart.add_discount(allinfo[0]) shcart.add_goods(allinfo[1]) if allinfo[2]: shcart.set_paydate(allinfo[2][0]) shcart.add_coupon(allinfo[3]) print(shcart.start_settlement())
def setUp(self): self.cart = ShoppingCart().add("tuna sandwich", 15.00)
def addShoppingCart(request): return {'shoppingcart': ShoppingCart(request)}
# e) Adding new website products website_product1 = Website_Products("Barbie Bee", 345, "Dolls", 20.00, True, 3, 1) toy_store.add_new_website_product(website_product1) # f) Adding new marketplace products marketplace_product1 = MarketplaceProducts("LEGO Starship", 432, "Art & Craft", 11.87, True, 3, 2) toy_store.add_new_marketplace_product(marketplace_product1) # g) Adding new shopping cart (only for testing) shop1 = ShoppingCart(1, customer1) # h) Adding new online orders (only for testing) order1 = OnlineOrders(2, shop1.products, shop1.customer) toy_store.add_new_onlineOrders(order1) # i) Adding new delivery company company_postal_service = DeliveryCompany("Postal Office", 1, 222) toy_store.add_new_delivery_company(company_postal_service) company_in_house_courier = DeliveryCompany("In-house courier", 2, 333) toy_store.add_new_delivery_company(company_in_house_courier) # j) Adding new Loyalty_Schemes:
class ShoppingCartTest(unittest.TestCase): ''' Case A : 题目用例,有促销,有优惠券 Case B : 题目用例,无促销,无优惠券 Case 3 : 促销信息与结算日期不在同一天,不享受促销优惠 Case 4 : 没有促销活动,有优惠券,但优惠券过期 Case 5 : 有促销活动,有优惠券,但优惠券过期 Case 6 : 多个促销活动 Case 7 : 多张优惠券,含过期 Case 8 : 购物车没有商品 # 信息异常时 Case 9 : 促销信息不全,则此类产品不进行优惠 Case 10 : 优惠券信息不全,此张优惠券无效 ''' def setUp(self): self.shcart = ShoppingCart() def test_start_settlement_1(self): ''' Case A 题目用例,有促销,有优惠券 :return: ''' case_path = os.path.join(Config.test_data_path, 'case_A.txt') allinfo = deal_file(case_path) self.shcart.add_discount(allinfo[0]) self.shcart.add_goods(allinfo[1]) self.shcart.set_paydate(allinfo[2][0]) self.shcart.add_coupon(allinfo[3]) ret = self.shcart.start_settlement() self.assertEqual( ret, Decimal(3083.60).quantize(Decimal('0.00'), rounding=ROUND_HALF_UP)) def test_start_settlement_2(self): ''' Case B 题目用例,无促销,无优惠券 :return: ''' case_path = os.path.join(Config.test_data_path, 'case_B.txt') allinfo = deal_file(case_path) self.shcart.add_discount(allinfo[0]) self.shcart.add_goods(allinfo[1]) self.shcart.set_paydate(allinfo[2][0]) self.shcart.add_coupon(allinfo[3]) ret = self.shcart.start_settlement() ret = self.shcart.start_settlement() self.assertEqual( ret, Decimal(43.54).quantize(Decimal('0.00'), rounding=ROUND_HALF_UP)) def test_start_settlement_3(self): ''' Case 3 促销信息与结算日期不在同一天,不享受促销优惠 :return: ''' case_path = os.path.join(Config.test_data_path, 'case_3.txt') allinfo = deal_file(case_path) self.shcart.add_discount(allinfo[0]) self.shcart.add_goods(allinfo[1]) self.shcart.set_paydate(allinfo[2][0]) self.shcart.add_coupon(allinfo[3]) ret = self.shcart.start_settlement() ret = self.shcart.start_settlement() self.assertEqual( ret, Decimal(4043.00).quantize(Decimal('0.00'), rounding=ROUND_HALF_UP)) def test_start_settlement_4(self): ''' Case 4 没有促销活动,有优惠券,但优惠券过期 :return: ''' case_path = os.path.join(Config.test_data_path, 'case_4.txt') allinfo = deal_file(case_path) self.shcart.add_discount(allinfo[0]) self.shcart.add_goods(allinfo[1]) self.shcart.set_paydate(allinfo[2][0]) self.shcart.add_coupon(allinfo[3]) ret = self.shcart.start_settlement() ret = self.shcart.start_settlement() self.assertEqual( ret, Decimal(4543.00).quantize(Decimal('0.00'), rounding=ROUND_HALF_UP)) def test_start_settlement_5(self): ''' Case 5 有促销活动,有优惠券,但优惠券过期 :return: ''' case_path = os.path.join(Config.test_data_path, 'case_5.txt') allinfo = deal_file(case_path) self.shcart.add_discount(allinfo[0]) self.shcart.add_goods(allinfo[1]) self.shcart.set_paydate(allinfo[2][0]) self.shcart.add_coupon(allinfo[3]) ret = self.shcart.start_settlement() ret = self.shcart.start_settlement() self.assertEqual( ret, Decimal(4393.00).quantize(Decimal('0.00'), rounding=ROUND_HALF_UP)) def test_start_settlement_6(self): ''' Case 6 多个促销活动 :return: ''' case_path = os.path.join(Config.test_data_path, 'case_6.txt') allinfo = deal_file(case_path) self.shcart.add_discount(allinfo[0]) self.shcart.add_goods(allinfo[1]) self.shcart.set_paydate(allinfo[2][0]) self.shcart.add_coupon(allinfo[3]) ret = self.shcart.start_settlement() ret = self.shcart.start_settlement() self.assertEqual( ret, Decimal(2924.60).quantize(Decimal('0.00'), rounding=ROUND_HALF_UP)) def test_start_settlement_7(self): ''' Case 7 多张优惠券,含过期 :return: ''' case_path = os.path.join(Config.test_data_path, 'case_7.txt') allinfo = deal_file(case_path) self.shcart.add_discount(allinfo[0]) self.shcart.add_goods(allinfo[1]) self.shcart.set_paydate(allinfo[2][0]) self.shcart.add_coupon(allinfo[3]) ret = self.shcart.start_settlement() ret = self.shcart.start_settlement() self.assertEqual( ret, Decimal(2624.60).quantize(Decimal('0.00'), rounding=ROUND_HALF_UP)) def test_start_settlement_8(self): ''' Case 8 购物车没有商品 :return: ''' case_path = os.path.join(Config.test_data_path, 'case_8.txt') allinfo = deal_file(case_path) self.shcart.add_discount(allinfo[0]) self.shcart.add_goods(allinfo[1]) self.shcart.set_paydate(allinfo[2][0]) self.shcart.add_coupon(allinfo[3]) ret = self.shcart.start_settlement() ret = self.shcart.start_settlement() self.assertEqual( ret, Decimal(0.00).quantize(Decimal('0.00'), rounding=ROUND_HALF_UP)) def test_start_settlement_9(self): ''' Case 9 促销信息不全,则此类产品不进行优惠 :return: ''' case_path = os.path.join(Config.test_data_path, 'case_9.txt') allinfo = deal_file(case_path) self.shcart.add_discount(allinfo[0]) self.shcart.add_goods(allinfo[1]) self.shcart.set_paydate(allinfo[2][0]) self.shcart.add_coupon(allinfo[3]) ret = self.shcart.start_settlement() ret = self.shcart.start_settlement() self.assertEqual( ret, Decimal(300.00).quantize(Decimal('0.00'), rounding=ROUND_HALF_UP)) def test_start_settlement_10(self): ''' Case 10 优惠券信息不全,此张优惠券无效 :return: ''' case_path = os.path.join(Config.test_data_path, 'case_10.txt') allinfo = deal_file(case_path) self.shcart.add_discount(allinfo[0]) self.shcart.add_goods(allinfo[1]) self.shcart.set_paydate(allinfo[2][0]) self.shcart.add_coupon(allinfo[3]) ret = self.shcart.start_settlement() ret = self.shcart.start_settlement() self.assertEqual( ret, Decimal(4393.00).quantize(Decimal('0.00'), rounding=ROUND_HALF_UP))