def testDeleteItemByOrd(self): """ """ self.logout() cm = ICartManagement(self.shop) cart = cm.createCart() im = IItemManagement(cart) im.addItem(self.product_1, properties=()) self.assertEqual(len(im.getItems()), 1) im.addItem(self.product_2, properties=(), quantity=3) self.assertEqual(len(im.getItems()), 2) # Try to delete non existing ord result = im.deleteItemByOrd(3) self.assertEqual(result, False) # Still 2 items in there self.assertEqual(len(im.getItems()), 2) # delete first item result = im.deleteItemByOrd(0) self.assertEqual(result, True) self.assertEqual(len(im.getItems()), 1) # Once again, but now it should be another result = im.deleteItemByOrd(0) self.assertEqual(result, True) self.assertEqual(len(im.getItems()), 0)
def testDeleteItem(self): """ """ self.logout() cm = ICartManagement(self.shop) cart = cm.createCart() im = IItemManagement(cart) im.addItem(self.product_1, properties=()) self.assertEqual(len(im.getItems()), 1) im.addItem(self.product_2, properties=(), quantity=3) self.assertEqual(len(im.getItems()), 2) # Try to delete non existing id result = im.deleteItem("3") self.assertEqual(result, False) # Still 2 items in there self.assertEqual(len(im.getItems()), 2) # delete first item result = im.deleteItem("0") self.assertEqual(result, True) self.assertEqual(len(im.getItems()), 1) # delete second item result = im.deleteItem("1") self.assertEqual(result, True) self.assertEqual(len(im.getItems()), 0)
def testAddProductAsAnonymousAndMember(self): """Proves that a member will overtake the cart items, which he has added, as anonymous user. """ self.logout() view = getMultiAdapter((self.shop.products.product_2, self.shop.products.product_2.REQUEST), name="addToCart") view.addToCart() cart = ICartManagement(self.shop).getCart() items = IItemManagement(cart).getItems() self.assertEqual(len(items), 1) view.addToCart() items = IItemManagement(cart).getItems() self.assertEqual(len(items), 1) view = getMultiAdapter((self.shop.products.product_1, self.shop.products.product_1.REQUEST), name="addToCart") view.addToCart() items = IItemManagement(cart).getItems() self.assertEqual(len(items), 2) self.login("newmember") cart = ICartManagement(self.shop).getCart() items = IItemManagement(cart).getItems() self.assertEqual(len(items), 2) self.assertEqual(cart.getId(), "newmember")
def testAddItemsAndGetItems(self): """ """ self.logout() cm = ICartManagement(self.shop) cart = cm.createCart() im = IItemManagement(cart) im.addItem(self.product_1, properties=()) self.assertEqual(len(im.getItems()), 1) im.addItem(self.product_1, properties=()) self.assertEqual(len(im.getItems()), 1) im.addItem(self.product_1, properties=(), quantity=2) self.assertEqual(len(im.getItems()), 1) im.addItem(self.product_2, properties=(), quantity=3) self.assertEqual(len(im.getItems()), 2) i1, i2 = im.getItems() i1.getId() == "0" i1.getProduct() == self.product_1 i1.getAmount() == 4 i1.getId() == "1" i1.getProduct() == self.product_2 i1.getAmount() == 2
def afterSetUp(self): """ """ super(TestCartItemProperties, self).afterSetUp() self.login("newmember") cm = ICartManagement(self.shop) cart = cm.createCart() im = IItemManagement(cart) properties = ( { "id": "color", "selected_option": "Red" }, # -10.0 { "id": "material", "selected_option": "Wood" }, # 0.0 { "id": "quality", "selected_option": "High" }, # 1500.0 ) im.addItem(self.product_1, properties=properties, quantity=3) self.item1 = im.getItems()[0]
def testHasItemsAsAdmin(self): """ """ cm = ICartManagement(self.shop) cart = cm.createCart() # This caused an error as shasattr was not yet used within # CartManagement.getCart(). It returned an ATFolder. im = IItemManagement(cart)
def afterSetUp(self): """ """ super(TestCartTaxes, self).afterSetUp() cm = ICartManagement(self.shop) self.cart = cm.createCart() im = IItemManagement(self.cart) im.addItem(self.product_1, properties=(), quantity=2) im.addItem(self.product_2, properties=(), quantity=3)
def testAddItemFromCartItem(self): """ """ cm = ICartManagement(self.shop) cart = cm.createCart() properties = ( { "id": "color", "selected_option": "Red" }, # -10.0 { "id": "material", "selected_option": "Wood" }, # 0.0 { "id": "quality", "selected_option": "High" }, # 1500.0 ) cim = IItemManagement(cart) cim.addItem(self.product_1, properties=properties, quantity=3) cart_item = IItemManagement(cart).getItems()[0] oim = IItemManagement(self.order) oim._addItemFromCartItem("0", cart_item) order_item = oim.getItems()[0] self.assertEqual(order_item.getProductQuantity(), 3) self.assertEqual("%.2f" % order_item.getProductPriceGross(), "22.00") self.assertEqual("%.2f" % order_item.getProductPriceNet(), "18.49") self.assertEqual("%.2f" % order_item.getProductTax(), "3.51") self.assertEqual("%.2f" % order_item.getPriceGross(), "4536.00") self.assertEqual("%.2f" % order_item.getPriceNet(), "3811.76") self.assertEqual(order_item.getTaxRate(), 19.0) self.assertEqual("%.2f" % order_item.getTax(), "724.24") self.assertEqual(order_item.getProduct(), self.product_1) properties = order_item.getProperties() self.assertEqual(properties[0]["title"], "Color") self.assertEqual(properties[0]["selected_option"], "Red") self.assertEqual(properties[0]["price"], "-10.0") self.assertEqual(properties[1]["title"], "Material") self.assertEqual(properties[1]["selected_option"], "Wood") self.assertEqual(properties[1]["price"], "0.0") self.assertEqual(properties[2]["title"], "Quality") self.assertEqual(properties[2]["selected_option"], "High") self.assertEqual(properties[2]["price"], "1500.0")
def testHasItems(self): """ """ self.logout() cm = ICartManagement(self.shop) cart = cm.createCart() im = IItemManagement(cart) self.assertEqual(im.hasItems(), False) im.addItem(self.product_1, properties=[]) self.assertEqual(im.hasItems(), True)
def afterSetUp(self): """ """ super(TestCartItems, self).afterSetUp() self.login("newmember") cm = ICartManagement(self.shop) cart = cm.createCart() im = IItemManagement(cart) im.addItem(self.product_1, properties=(), quantity=2) im.addItem(self.product_2, properties=(), quantity=3) self.item1, self.item2 = im.getItems()
def testAddProductAsAnonymous(self): """ """ self.logout() view = getMultiAdapter((self.shop.products.product_2, self.shop.products.product_2.REQUEST), name="addToCart") view.addToCart() cart = ICartManagement(self.shop).getCart() items = IItemManagement(cart).getItems() self.assertEqual(len(items), 1) view.addToCart() items = IItemManagement(cart).getItems() self.assertEqual(len(items), 1) view = getMultiAdapter((self.shop.products.product_1, self.shop.products.product_1.REQUEST), name="addToCart") view.addToCart() items = IItemManagement(cart).getItems() self.assertEqual(len(items), 2)
def testPrices3(self): """ """ self.shop.discounts.invokeFactory("Discount", id="d1", title="D1", value="1.0", base="cart_item", type="percentage") discount = self.shop.discounts.d1 view = getMultiAdapter((self.shop.products.product_1, self.shop.products.product_1.REQUEST), name="addToCart") view() view() cart = ICartManagement(self.shop).getCart() item = IItemManagement(cart).getItems()[0] prices = getMultiAdapter((discount, item), IPrices) price_net = "%.2f" % prices.getPriceNet() price_gross = "%.2f" % prices.getPriceGross() price_for_customer = "%.2f" % prices.getPriceForCustomer() self.assertEqual(price_gross, "0.44") self.assertEqual(price_for_customer, "0.44") self.assertEqual(price_net, "0.37")
def testAddItemFromCartItem(self): """ """ cm = ICartManagement(self.shop) cart = cm.createCart() properties = ( {"id" : "color" , "selected_option" : "Red" }, # -10.0 {"id" : "material", "selected_option" : "Wood"}, # 0.0 {"id" : "quality" , "selected_option" : "High"}, # 1500.0 ) cim = IItemManagement(cart) cim.addItem(self.product_1, properties=properties, quantity=3) cart_item = IItemManagement(cart).getItems()[0] oim = IItemManagement(self.order) oim._addItemFromCartItem("0", cart_item) order_item = oim.getItems()[0] self.assertEqual(order_item.getProductQuantity(), 3) self.assertEqual("%.2f" % order_item.getProductPriceGross(), "22.00") self.assertEqual("%.2f" % order_item.getProductPriceNet(), "18.49") self.assertEqual("%.2f" % order_item.getProductTax(), "3.51") self.assertEqual("%.2f" % order_item.getPriceGross(), "4536.00") self.assertEqual("%.2f" % order_item.getPriceNet(), "3811.76") self.assertEqual(order_item.getTaxRate(), 19.0) self.assertEqual("%.2f" % order_item.getTax(), "724.24") self.assertEqual(order_item.getProduct(), self.product_1) properties = order_item.getProperties() self.assertEqual(properties[0]["title"], "Color") self.assertEqual(properties[0]["selected_option"], "Red") self.assertEqual(properties[0]["price"], "-10.0") self.assertEqual(properties[1]["title"], "Material") self.assertEqual(properties[1]["selected_option"], "Wood") self.assertEqual(properties[1]["price"], "0.0") self.assertEqual(properties[2]["title"], "Quality") self.assertEqual(properties[2]["selected_option"], "High") self.assertEqual(properties[2]["price"], "1500.0")
def testAddItemsFromCart(self): """ """ cm = ICartManagement(self.shop) cart1 = cm.createCart() im1 = IItemManagement(cart1) im1.addItem(self.product_1, properties=()) im1.addItem(self.product_2, properties=(), quantity=3) self.login("newmember") cart2 = cm.createCart() im2 = IItemManagement(cart2) im2.addItemsFromCart(cart1) self.assertEqual(len(im2.getItems()), 2)
def testAddItemsFromCart(self): """ """ view = getMultiAdapter((self.shop.products.product_1, self.shop.products.product_1.REQUEST), name="addToCart") view.addToCart() view = getMultiAdapter((self.shop.products.product_2, self.shop.products.product_2.REQUEST), name="addToCart") view.addToCart() cm = ICartManagement(self.shop) cart = cm.getCart() im = IItemManagement(self.order) im.addItemsFromCart(cart) product_ids = [item.getProduct().getId() for item in im.getItems()] self.assertEqual(product_ids, ["product_1", "product_2"])
def afterSetUp(self): """ """ super(TestCartItemProperties, self).afterSetUp() self.login("newmember") cm = ICartManagement(self.shop) cart = cm.createCart() im = IItemManagement(cart) properties = ( {"id" : "color" , "selected_option" : "Red" }, # -10.0 {"id" : "material", "selected_option" : "Wood"}, # 0.0 {"id" : "quality" , "selected_option" : "High"}, # 1500.0 ) im.addItem(self.product_1, properties=properties, quantity=3) self.item1 = im.getItems()[0]
def testDeleteItemByOrd(self): """ """ self.login("newmember") view = getMultiAdapter((self.shop.products.product_1, self.shop.products.product_1.REQUEST), name="addToCart") view.addToCart() cart = ICartManagement(self.shop).getCart() im = IItemManagement(cart) im.deleteItemByOrd(0) self.failIf(hasattr(cart, "0"))
def testRemoveCart(self): """ """ view = getMultiAdapter((self.shop.products.product_1, self.shop.products.product_1.REQUEST), name="addToCart") view.addToCart() view.addToCart() view = getMultiAdapter((self.shop.products.product_2, self.shop.products.product_2.REQUEST), name="addToCart") view.addToCart() cart = ICartManagement(self.shop).getCart() sm = IStockManagement(self.shop) sm.removeCart(cart) self.assertEqual(self.shop.products.product_1.getStockAmount(), 8.0) self.assertEqual(self.shop.products.product_2.getStockAmount(), 19.0)
def afterSetUp(self): """ """ super(TestCartManagement, self).afterSetUp() self.cm = ICartManagement(self.shop)
class TestCartManagement(EasyShopTestCase): """ """ def afterSetUp(self): """ """ super(TestCartManagement, self).afterSetUp() self.cm = ICartManagement(self.shop) def testCreateCart_1(self): """Create cart for anonymous. """ self.logout() sid = self.portal.REQUEST.SESSION = utils.TestSession("123") cart = self.cm.createCart() self.assertEqual(cart.getId(), "123") def testCreateCart_2(self): """Create cart for member. """ self.login("newmember") cart = self.cm.createCart() self.assertEqual(cart.getId(), "newmember") def testDeleteCart_1(self): """Without given id. """ self.login("newmember") self.cm.createCart() self.failUnless(self.shop.carts.get("newmember")) self.cm.deleteCart() self.failIf(self.shop.carts.get("newmember")) def testDeleteCart_2(self): """With given id. """ self.login("newmember") self.cm.createCart() self.failUnless(self.shop.carts.get("newmember")) self.cm.deleteCart("newmember") self.failIf(self.shop.carts.get("newmember")) def testGetCart_1(self): """Cart for anonmyous. There is no cart yet. """ self.logout() sid = self.portal.REQUEST.SESSION = utils.TestSession("123") cart = self.cm.getCart() self.assertEqual(cart, None) def testGetCart_2(self): """Cart for anonymous. There is a cart """ self.logout() sid = self.portal.REQUEST.SESSION = utils.TestSession("123") self.cm.createCart() cart = self.cm.getCart() self.assertEqual(cart.getId(), "123") def testGetCart_3(self): """Cart for member. There is no anonymous cart. Carts are only created when items are added to it. """ self.login("newmember") cart = self.cm.getCart() self.assertEqual(cart, None) def testGetCart_4(self): """Cart for member. There is an anonymous cart. """ self.logout() sid = self.portal.REQUEST.SESSION = utils.TestSession("123") # create cart for anonymous self.cm.createCart() cart = self.cm.getCart() self.assertEqual(cart.getId(), "123") self.login("newmember") # After login the anonymous cart should be moved to member cart cart = self.cm.getCart() self.assertEqual(cart.getId(), "newmember") # The cart for anonymous has to be deleted self.failIf(self.shop.carts.get("123")) def testGetCarts(self): """ """ # create cart for newmember self.login("newmember") self.cm.createCart() self.setRoles(("Manager",)) ids = [c.getId for c in self.cm.getCarts()] self.assertEqual(ids, ["newmember"]) def testGetCartById(self): """ """ # create cart for newmember self.login("newmember") self.cm.createCart() cart = self.cm.getCartById("newmember") self.assertEqual(cart.getId(), "newmember") def testGetCartByUID(self): """ """ # create cart for newmember self.login("newmember") cart = self.cm.createCart() cart = self.cm.getCartByUID(cart.UID()) self.assertEqual(cart.getId(), "newmember") def testHasCart(self): """ """ self.assertEqual(self.cm.hasCart(), False) self.login("newmember") cart = self.cm.createCart() self.assertEqual(self.cm.hasCart(), True) def test_getCartId(self): """ """ self.logout() sid = self.portal.REQUEST.SESSION = utils.TestSession("123") cart_id = self.cm._getCartId() self.assertEqual(cart_id, "123") self.login("newmember") cart_id = self.cm._getCartId() self.assertEqual(cart_id, "newmember")
class TestCartManagement(EasyShopTestCase): """ """ def afterSetUp(self): """ """ super(TestCartManagement, self).afterSetUp() self.cm = ICartManagement(self.shop) def testCreateCart_1(self): """Create cart for anonymous. """ self.logout() sid = self.portal.REQUEST.SESSION = utils.TestSession("123") cart = self.cm.createCart() self.assertEqual(cart.getId(), "123") def testCreateCart_2(self): """Create cart for member. """ self.login("newmember") cart = self.cm.createCart() self.assertEqual(cart.getId(), "newmember") def testDeleteCart_1(self): """Without given id. """ self.login("newmember") self.cm.createCart() self.failUnless(self.shop.carts.get("newmember")) self.cm.deleteCart() self.failIf(self.shop.carts.get("newmember")) def testDeleteCart_2(self): """With given id. """ self.login("newmember") self.cm.createCart() self.failUnless(self.shop.carts.get("newmember")) self.cm.deleteCart("newmember") self.failIf(self.shop.carts.get("newmember")) def testGetCart_1(self): """Cart for anonmyous. There is no cart yet. """ self.logout() sid = self.portal.REQUEST.SESSION = utils.TestSession("123") cart = self.cm.getCart() self.assertEqual(cart, None) def testGetCart_2(self): """Cart for anonymous. There is a cart """ self.logout() sid = self.portal.REQUEST.SESSION = utils.TestSession("123") self.cm.createCart() cart = self.cm.getCart() self.assertEqual(cart.getId(), "123") def testGetCart_3(self): """Cart for member. There is no anonymous cart. Carts are only created when items are added to it. """ self.login("newmember") cart = self.cm.getCart() self.assertEqual(cart, None) def testGetCart_4(self): """Cart for member. There is an anonymous cart. """ self.logout() sid = self.portal.REQUEST.SESSION = utils.TestSession("123") # create cart for anonymous self.cm.createCart() cart = self.cm.getCart() self.assertEqual(cart.getId(), "123") self.login("newmember") # After login the anonymous cart should be moved to member cart cart = self.cm.getCart() self.assertEqual(cart.getId(), "newmember") # The cart for anonymous has to be deleted self.failIf(self.shop.carts.get("123")) def testGetCarts(self): """ """ # create cart for newmember self.login("newmember") self.cm.createCart() self.setRoles(("Manager", )) ids = [c.getId for c in self.cm.getCarts()] self.assertEqual(ids, ["newmember"]) def testGetCartById(self): """ """ # create cart for newmember self.login("newmember") self.cm.createCart() cart = self.cm.getCartById("newmember") self.assertEqual(cart.getId(), "newmember") def testGetCartByUID(self): """ """ # create cart for newmember self.login("newmember") cart = self.cm.createCart() cart = self.cm.getCartByUID(cart.UID()) self.assertEqual(cart.getId(), "newmember") def testHasCart(self): """ """ self.assertEqual(self.cm.hasCart(), False) self.login("newmember") cart = self.cm.createCart() self.assertEqual(self.cm.hasCart(), True) def test_getCartId(self): """ """ self.logout() sid = self.portal.REQUEST.SESSION = utils.TestSession("123") cart_id = self.cm._getCartId() self.assertEqual(cart_id, "123") self.login("newmember") cart_id = self.cm._getCartId() self.assertEqual(cart_id, "newmember")