Example #1
0
    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)
Example #2
0
    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)
Example #3
0
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')
Example #4
0
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')	
Example #5
0
    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)
Example #7
0
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.")
Example #8
0
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)
Example #9
0
 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)
Example #11
0
 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)
Example #13
0
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})
Example #14
0
    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)
Example #15
0
    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)
Example #16
0
    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)
Example #18
0
    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)
Example #19
0
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)
Example #21
0
 def setUp(self):
     self.shcart = ShoppingCart()
Example #22
0
 def setUp(self):
     self.cart = ShoppingCart()
Example #23
0
                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)
Example #25
0
def addShoppingCart(request):
    return {'shoppingcart': ShoppingCart(request)}
Example #26
0
# 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:
Example #27
0
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))
Example #28
0
 def setUp(self):
     self.cart = ShoppingCart().add("tuna sandwich", 15.00)