class TestNonZeroFreeThreshold(TestCase): def setUp(self): self.method = OrderAndItemCharges(price_per_order=D('10.00'), free_shipping_threshold=D('20.00')) self.basket = factories.create_basket(empty=True) def test_basket_below_threshold(self): record = factories.create_stockrecord(price_excl_tax=D('5.00')) self.basket.add_product(record.product) charge = self.method.calculate(self.basket) self.assertEqual(D('10.00'), charge.incl_tax) def test_basket_on_threshold(self): record = factories.create_stockrecord(price_excl_tax=D('5.00')) self.basket.add_product(record.product, quantity=4) charge = self.method.calculate(self.basket) self.assertEqual(D('0.00'), charge.incl_tax) def test_basket_above_threshold(self): record = factories.create_stockrecord(price_excl_tax=D('5.00')) self.basket.add_product(record.product, quantity=8) charge = self.method.calculate(self.basket) self.assertEqual(D('0.00'), charge.incl_tax)
class TestNonZeroFreeThreshold(TestCase): def setUp(self): self.method = OrderAndItemCharges( price_per_order=D('10.00'), free_shipping_threshold=D('20.00')) self.basket = factories.create_basket(empty=True) def test_basket_below_threshold(self): record = factories.create_stockrecord(price_excl_tax=D('5.00')) self.basket.add_product(record.product) charge = self.method.calculate(self.basket) self.assertEqual(D('10.00'), charge.incl_tax) def test_basket_on_threshold(self): record = factories.create_stockrecord(price_excl_tax=D('5.00')) self.basket.add_product(record.product, quantity=4) charge = self.method.calculate(self.basket) self.assertEqual(D('0.00'), charge.incl_tax) def test_basket_above_threshold(self): record = factories.create_stockrecord(price_excl_tax=D('5.00')) self.basket.add_product(record.product, quantity=8) charge = self.method.calculate(self.basket) self.assertEqual(D('0.00'), charge.incl_tax)
class ZeroFreeThresholdTest(TestCase): def setUp(self): self.method = OrderAndItemCharges(price_per_order=D('10.00'), free_shipping_threshold=D('0.00')) self.basket = factories.create_basket(empty=True) def test_free_shipping_with_empty_basket(self): charge = self.method.calculate(self.basket) self.assertEqual(D('0.00'), charge.incl_tax) def test_free_shipping_with_nonempty_basket(self): record = factories.create_stockrecord(price_excl_tax=D('5.00')) self.basket.add_product(record.product) charge = self.method.calculate(self.basket) self.assertEqual(D('0.00'), charge.incl_tax)
class ZeroFreeThresholdTest(TestCase): def setUp(self): self.method = OrderAndItemCharges( price_per_order=D('10.00'), free_shipping_threshold=D('0.00')) self.basket = factories.create_basket(empty=True) def test_free_shipping_with_empty_basket(self): charge = self.method.calculate(self.basket) self.assertEqual(D('0.00'), charge.incl_tax) def test_free_shipping_with_nonempty_basket(self): record = factories.create_stockrecord(price_excl_tax=D('5.00')) self.basket.add_product(record.product) charge = self.method.calculate(self.basket) self.assertEqual(D('0.00'), charge.incl_tax)
class TestOrderAndItemCharges(TestCase): def setUp(self): self.method = OrderAndItemCharges( price_per_order=D('5.00'), price_per_item=D('1.00')) def test_tax_is_known(self): basket = factories.create_basket(empty=True) charge = self.method.calculate(basket) self.assertTrue(charge.is_tax_known) def test_returns_order_level_charge_for_empty_basket(self): basket = factories.create_basket(empty=True) charge = self.method.calculate(basket) self.assertEqual(D('5.00'), charge.incl_tax) def test_single_item_basket(self): basket = factories.create_basket(empty=False) charge = self.method.calculate(basket) self.assertEqual(D('5.00') + D('1.00'), charge.incl_tax) def test_single_item_basket_that_doesnt_require_shipping(self): # Create a product that doesn't require shipping record = factories.create_stockrecord() product = record.product product.product_class.requires_shipping = False product.product_class.save() basket = factories.create_basket(empty=True) basket.add_product(record.product) charge = self.method.calculate(basket) self.assertEqual(D('5.00'), charge.incl_tax) def test_multi_item_basket(self): basket = factories.create_basket(empty=True) record = factories.create_stockrecord() basket.add_product(record.product, 7) charge = self.method.calculate(basket) self.assertEqual(D('5.00') + 7*D('1.00'), charge.incl_tax)