def test_weight_calculation_of_basket(self): basket = Basket() basket.add_product(create_product(attributes={'weight': 1})) basket.add_product(create_product(attributes={'weight': 2})) scales = Scales(attribute_code='weight') self.assertEquals(1+2, scales.weigh_basket(basket))
def test_weight_calculation_of_basket(self): basket = Basket() basket.add_product(create_product(attributes={'weight': 1})) basket.add_product(create_product(attributes={'weight': 2})) scales = Scales(attribute_code='weight') self.assertEquals(1 + 2, scales.weigh_basket(basket))
def test_weight_calculation_of_basket_with_line_quantity(self): basket = Basket() basket.add_product(create_product(attributes={'weight': 1}), quantity=3) basket.add_product(create_product(attributes={'weight': 2}), quantity=4) scales = Scales(attribute_code='weight') self.assertEquals(1*3+2*4, scales.weigh_basket(basket))
def test_weight_calculation_of_basket_with_line_quantity(self): basket = Basket() basket.add_product(create_product(attributes={"weight": 1}), quantity=3) basket.add_product(create_product(attributes={"weight": 2}), quantity=4) scales = Scales(attribute_code="weight") self.assertEquals(1 * 3 + 2 * 4, scales.weigh_basket(basket))
def charge_incl_tax(self): scales = Scales(attribute_code=self.weight_attribute, default_weight=self.default_weight) weight = scales.weigh_basket(self._basket) band = self.get_band_for_weight(weight) if not band: if self.bands.all().exists() and self.upper_charge: return self.upper_charge else: return D("0.00") return band.charge
def charge_incl_tax(self): scales = Scales(attribute_code=self.weight_attribute, default_weight=self.default_weight) weight = scales.weigh_basket(self._basket) band = self.get_band_for_weight(weight) if not band: if self.bands.all().exists() and self.upper_charge: return self.upper_charge else: return D('0.00') return band.charge
def test_returns_correct_weight_for_nonempty_basket(self): basket = factories.create_basket(empty=True) products = [ factories.create_product(attributes={'weight': '1'}, price=D('5.00')), factories.create_product(attributes={'weight': '2'}, price=D('5.00'))] for product in products: basket.add(product) scales = Scales(attribute_code='weight') self.assertEqual(1 + 2, scales.weigh_basket(basket))
def test_returns_correct_weight_for_nonempty_basket_with_line_quantities(self): basket = factories.create_basket(empty=True) products = [ (factories.create_product(attributes={'weight': '1'}, price=D('5.00')), 3), (factories.create_product(attributes={'weight': '2'}, price=D('5.00')), 4)] for product, quantity in products: basket.add(product, quantity=quantity) scales = Scales(attribute_code='weight') self.assertEqual(1*3 + 2*4, scales.weigh_basket(basket))
def charge_incl_tax(self): # Note, when weighing the basket, we don't check whether the item # requires shipping or not. It is assumed that if something has a # weight, then it requires shipping. scales = Scales(attribute_code=self.weight_attribute, default_weight=self.default_weight) weight = scales.weigh_basket(self._basket) band = self.get_band_for_weight(weight) if not band: if self.bands.all().exists() and self.upper_charge: return self.upper_charge else: return D('0.00') return band.charge
def basket_charge_incl_tax(self): weight = Scales(attribute_code=self.weight_attribute, default_weight=self.default_weight).weigh_basket(self._basket) band = self.get_band_for_weight(weight) if not band: if self.bands.all().count() > 0 and self.upper_charge: return self.upper_charge else: return D('0.00') return band.charge
def test_simple_weight_calculation(self): scales = Scales(attribute_code='weight') p = create_product(attributes={'weight': 1}) self.assertEqual(1, scales.weigh_product(p))
def test_returns_zero_for_empty_basket(self): basket = Basket() scales = Scales(attribute_code='weight') self.assertEqual(0, scales.weigh_basket(basket))
def test_uses_default_weight_when_attribute_is_missing(self): scales = Scales(attribute_code='weight', default_weight=0.5) p = factories.create_product() self.assertEqual(0.5, scales.weigh_product(p))
def test_raises_exception_when_attribute_is_missing(self): scales = Scales(attribute_code='weight') p = factories.create_product() with self.assertRaises(ValueError): scales.weigh_product(p)
def test_weighs_uses_specified_attribute(self): scales = Scales(attribute_code='weight') p = factories.create_product(attributes={'weight': '1'}) self.assertEqual(1, scales.weigh_product(p))
def test_weight_calculation_of_empty_basket(self): basket = Basket() scales = Scales(attribute_code='weight') self.assertEquals(0, scales.weigh_basket(basket))
def test_default_weight_is_used_when_attribute_is_missing(self): scales = Scales(attribute_code="weight", default_weight=0.5) p = create_product() self.assertEqual(0.5, scales.weigh_product(p))
def test_exception_is_raised_when_attribute_is_missing(self): scales = Scales(attribute_code="weight") p = create_product() with self.assertRaises(ValueError): scales.weigh_product(p)