Example #1
0
    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)
Example #2
0
    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]
Example #3
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 testGetItems(self):
        """
        """
        self.order.invokeFactory("OrderItem", "item_1")
        self.order.invokeFactory("OrderItem", "item_2")        
                        
        im = IItemManagement(self.order)
        item_ids = [item.getId() for item in im.getItems()]

        self.assertEqual(item_ids, ["item_1", "item_2"])
Example #5
0
    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)
Example #6
0
 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 testGetItems(self):
        """
        """
        self.order.invokeFactory("OrderItem", "item_1")
        self.order.invokeFactory("OrderItem", "item_2")

        im = IItemManagement(self.order)
        item_ids = [item.getId() for item in im.getItems()]

        self.assertEqual(item_ids, ["item_1", "item_2"])
    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")
Example #9
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)
Example #10
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"))
Example #11
0
    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 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()
Example #13
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 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 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"])
Example #16
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(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]
Example #18
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)
Example #19
0
    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"])
Example #20
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 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")
Example #22
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)
Example #23
0
 def testDeleteItemByOrd(self):
     """
     """
     im = IItemManagement(self.order)
     self.assertRaises(Exception, im.deleteItemByOrd, 0)
Example #24
0
 def testDeleteItem(self):
     """
     """
     im = IItemManagement(self.order)
     self.assertRaises(Exception, im.deleteItem, "dummy_id")
Example #25
0
 def testAddItem(self):
     """
     """
     im = IItemManagement(self.order)
     self.assertRaises(Exception, im.addItem, "dummy_product")
Example #26
0
    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)
Example #27
0
    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
Example #28
0
    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)
Example #29
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)
Example #30
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)
Example #31
0
    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