Пример #1
0
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)
Пример #2
0
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)
Пример #3
0
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)
Пример #4
0
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)
Пример #5
0
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)