def testAddOrder(self): """ """ self.login("newmember") 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() new_order = IOrderManagement(self.shop).addOrder() self.assertEqual(new_order.getShippingPriceGross(), 10.0) self.assertEqual("%.2f" % new_order.getShippingPriceNet(), "8.40") self.assertEqual("%.2f" % new_order.getShippingTax(), "1.60") self.assertEqual(new_order.getShippingTaxRate(), 19.0) self.assertEqual(new_order.getPaymentPriceGross(), 100.0) self.assertEqual("%.2f" % new_order.getPaymentPriceNet(), "84.03") self.assertEqual("%.2f" % new_order.getPaymentTax(), "15.97") self.assertEqual(new_order.getPaymentTaxRate(), 19.0) # items should be overtaken (more concise tests for item managment are # in a seperated file) self.failUnless(len(new_order.objectIds("OrderItem")) == 2) # customer should be copied self.assertEqual(new_order.getCustomer().getId(), "newmember") # The cart should still be there, because we need it until the payment # has been successfully processed. See order_preview.py/handle_buy_action # for more. self.failUnless(self.shop.carts.get("newmember"))