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 OrderAndItemChargesTests(TestCase):

    def setUp(self):
        self.method = OrderAndItemCharges(
            price_per_order=D('5.00'), price_per_item=D('1.00'))
        self.basket = factories.create_basket(empty=True)
        self.method.set_basket(self.basket)

    def test_tax_is_known(self):
        self.assertTrue(self.method.is_tax_known)

    def test_order_level_charge_for_empty_basket(self):
        self.assertEqual(D('5.00'), self.method.charge_incl_tax)

    def test_single_item_basket(self):
        record = factories.create_stockrecord()
        self.basket.add_product(record.product)
        self.assertEqual(D('5.00') + D('1.00'),
                          self.method.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()

        self.basket.add_product(record.product)
        self.assertEqual(D('5.00'), self.method.charge_incl_tax)

    def test_multi_item_basket(self):
        record = factories.create_stockrecord()
        self.basket.add_product(record.product, 7)
        self.assertEqual(D('5.00') + 7*D('1.00'), self.method.charge_incl_tax)
class OrderAndItemChargesTests(TestCase):

    def setUp(self):
        self.method = OrderAndItemCharges(
            price_per_order=D('5.00'), price_per_item=D('1.00'))
        self.basket = factories.create_basket(empty=True)
        self.method.set_basket(self.basket)

    def test_tax_is_known(self):
        self.assertTrue(self.method.is_tax_known)

    def test_order_level_charge_for_empty_basket(self):
        self.assertEqual(D('5.00'), self.method.charge_incl_tax)

    def test_single_item_basket(self):
        record = factories.create_stockrecord()
        self.basket.add_product(record.product)
        self.assertEqual(D('5.00') + D('1.00'),
                          self.method.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()

        self.basket.add_product(record.product)
        self.assertEquals(D('5.00'), self.method.charge_incl_tax)

    def test_multi_item_basket(self):
        record = factories.create_stockrecord()
        self.basket.add_product(record.product, 7)
        self.assertEqual(D('5.00') + 7*D('1.00'), self.method.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)
Example #5
0
class ZeroFreeThresholdTest(TestCase):
    def setUp(self):
        self.method = OrderAndItemCharges(price_per_order=D("10.00"), free_shipping_threshold=D("0.00"))
        self.basket = Basket.objects.create()
        self.method.set_basket(self.basket)

    def test_free_shipping_with_empty_basket(self):
        self.assertEquals(D("0.00"), self.method.basket_charge_incl_tax())

    def test_free_shipping_with_nonempty_basket(self):
        p = create_product(D("5.00"))
        self.basket.add_product(p)
        self.assertEquals(D("0.00"), self.method.basket_charge_incl_tax())
Example #6
0
class ZeroFreeThresholdTest(TestCase):
    def setUp(self):
        self.method = OrderAndItemCharges(price_per_order=D('10.00'),
                                          free_shipping_threshold=D('0.00'))
        self.basket = Basket.objects.create()
        self.method.set_basket(self.basket)

    def test_free_shipping_with_empty_basket(self):
        self.assertEquals(D('0.00'), self.method.basket_charge_incl_tax())

    def test_free_shipping_with_nonempty_basket(self):
        p = create_product(D('5.00'))
        self.basket.add_product(p)
        self.assertEquals(D('0.00'), self.method.basket_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)
        self.method.set_basket(self.basket)

    def test_free_shipping_with_empty_basket(self):
        self.assertEqual(D('0.00'), self.method.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)
        self.assertEqual(D('0.00'), self.method.charge_incl_tax)
Example #8
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)
        self.method.set_basket(self.basket)

    def test_free_shipping_with_empty_basket(self):
        self.assertEquals(D('0.00'), self.method.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)
        self.assertEquals(D('0.00'), self.method.charge_incl_tax)
Example #9
0
 def setUp(self):
     self.non_discount_methods = [
         Free(),
         FixedPrice(D('10.00'), D('10.00')),
         OrderAndItemCharges(price_per_order=D('5.00'),
                             price_per_item=D('1.00'))
     ]
Example #10
0
class OrderAndItemChargesTests(TestCase):
    def setUp(self):
        self.method = OrderAndItemCharges(price_per_order=D("5.00"), price_per_item=D("1.00"))
        self.basket = Basket.objects.create()
        self.method.set_basket(self.basket)

    def test_order_level_charge_for_empty_basket(self):
        self.assertEquals(D("5.00"), self.method.basket_charge_incl_tax())

    def test_single_item_basket(self):
        p = create_product()
        self.basket.add_product(p)
        self.assertEquals(D("5.00") + D("1.00"), self.method.basket_charge_incl_tax())

    def test_multi_item_basket(self):
        p = create_product()
        self.basket.add_product(p, 7)
        self.assertEquals(D("5.00") + 7 * D("1.00"), self.method.basket_charge_incl_tax())
Example #11
0
class OrderAndItemChargesTests(TestCase):

    def setUp(self):
        self.method = OrderAndItemCharges(price_per_order=D('5.00'), price_per_item=D('1.00'))
        self.basket = Basket.objects.create()
        self.method.set_basket(self.basket)

    def test_order_level_charge_for_empty_basket(self):
        self.assertEquals(D('5.00'), self.method.basket_charge_incl_tax())

    def test_single_item_basket(self):
        p = create_product()
        self.basket.add_product(p)
        self.assertEquals(D('5.00') + D('1.00'), self.method.basket_charge_incl_tax())

    def test_multi_item_basket(self):
        p = create_product()
        self.basket.add_product(p, 7)
        self.assertEquals(D('5.00') + 7*D('1.00'), self.method.basket_charge_incl_tax())
class OrderAndItemChargesTests(TestCase):

    def setUp(self):
        self.method = OrderAndItemCharges(price_per_order=D('5.00'), price_per_item=D('1.00'))
        self.basket = factories.create_basket(empty=True)
        self.method.set_basket(self.basket)

    def test_order_level_charge_for_empty_basket(self):
        self.assertEquals(D('5.00'), self.method.charge_incl_tax)

    def test_single_item_basket(self):
        record = factories.create_stockrecord()
        self.basket.add_product(record.product)
        self.assertEquals(D('5.00') + D('1.00'),
                          self.method.charge_incl_tax)

    def test_multi_item_basket(self):
        record = factories.create_stockrecord()
        self.basket.add_product(record.product, 7)
        self.assertEquals(D('5.00') + 7*D('1.00'), self.method.charge_incl_tax)
Example #13
0
class OrderAndItemChargesTests(TestCase):
    def setUp(self):
        self.method = OrderAndItemCharges(price_per_order=D('5.00'),
                                          price_per_item=D('1.00'))
        self.basket = factories.create_basket(empty=True)
        self.method.set_basket(self.basket)

    def test_order_level_charge_for_empty_basket(self):
        self.assertEquals(D('5.00'), self.method.charge_incl_tax)

    def test_single_item_basket(self):
        record = factories.create_stockrecord()
        self.basket.add_product(record.product)
        self.assertEquals(D('5.00') + D('1.00'), self.method.charge_incl_tax)

    def test_multi_item_basket(self):
        record = factories.create_stockrecord()
        self.basket.add_product(record.product, 7)
        self.assertEquals(
            D('5.00') + 7 * D('1.00'), self.method.charge_incl_tax)
Example #14
0
class NonZeroFreeThresholdTest(TestCase):
    
    def setUp(self):
        self.method = OrderAndItemCharges(price_per_order=D('10.00'), free_shipping_threshold=D('20.00'))
        self.basket = Basket.objects.create()
        self.method.set_basket(self.basket)
        
    def test_basket_below_threshold(self):
        p = create_product(D('5.00'))
        self.basket.add_product(p)
        self.assertEquals(D('10.00'), self.method.basket_charge_incl_tax())
        
    def test_basket_on_threshold(self):
        p = create_product(D('5.00'))
        self.basket.add_product(p, 4)
        self.assertEquals(D('0.00'), self.method.basket_charge_incl_tax())
        
    def test_basket_above_threshold(self):
        p = create_product(D('5.00'))
        self.basket.add_product(p, 8)
        self.assertEquals(D('0.00'), self.method.basket_charge_incl_tax())
Example #15
0
class NonZeroFreeThresholdTest(unittest.TestCase):
    
    def setUp(self):
        self.method = OrderAndItemCharges(price_per_order=D('10.00'), free_shipping_threshold=D('20.00'))
        self.basket = Basket.objects.create()
        self.method.set_basket(self.basket)
        
    def test_basket_below_threshold(self):
        p = create_product(D('5.00'))
        self.basket.add_product(p)
        self.assertEquals(D('10.00'), self.method.basket_charge_incl_tax())
        
    def test_basket_on_threshold(self):
        p = create_product(D('5.00'))
        self.basket.add_product(p, 4)
        self.assertEquals(D('0.00'), self.method.basket_charge_incl_tax())
        
    def test_basket_above_threshold(self):
        p = create_product(D('5.00'))
        self.basket.add_product(p, 8)
        self.assertEquals(D('0.00'), self.method.basket_charge_incl_tax())
 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)
     self.method.set_basket(self.basket)
 def setUp(self):
     self.method = OrderAndItemCharges(
         price_per_order=D('5.00'), price_per_item=D('1.00'))
 def setUp(self):
     self.method = OrderAndItemCharges(
         price_per_order=D('5.00'), price_per_item=D('1.00'))
     self.basket = factories.create_basket(empty=True)
     self.method.set_basket(self.basket)
Example #19
0
 def setUp(self):
     self.method = OrderAndItemCharges(price_per_order=D('5.00'),
                                       price_per_item=D('1.00'))
     self.basket = Basket.objects.create()
     self.method.set_basket(self.basket)
Example #20
0
 def setUp(self):
     self.method = OrderAndItemCharges(price_per_order=D('10.00'), free_shipping_threshold=D('0.00'))
     self.basket = Basket.objects.create()
     self.method.set_basket(self.basket)
Example #21
0
 def setUp(self):
     self.method = OrderAndItemCharges(price_per_order=D('5.00'), price_per_item=D('1.00'))
     self.basket = Basket.objects.create()
     self.method.set_basket(self.basket)
Example #22
0
 def setUp(self):
     self.method = OrderAndItemCharges(price_per_order=D('10.00'),
                                       free_shipping_threshold=D('20.00'))
     self.basket = Basket.objects.create()
     self.method.set_basket(self.basket)
Example #23
0
 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)
     self.method.set_basket(self.basket)
 def setUp(self):
     self.method = OrderAndItemCharges(price_per_order=D('5.00'),
                                       price_per_item=D('1.00'))
Example #25
0
 def setUp(self):
     self.method = OrderAndItemCharges(price_per_order=D('5.00'),
                                       price_per_item=D('1.00'))
     self.basket = factories.create_basket(empty=True)
     self.method.set_basket(self.basket)