def _create_price(price, includes_tax): if includes_tax: return TaxfulPrice(price) else: return TaxlessPrice(price)
def test_tax_mixup(): with pytest.raises(TypeError): TaxfulPrice(42, 'EUR') - TaxlessPrice(2, 'EUR')
def test_new(): assert TaxfulPrice(currency='EUR').new(42) == TaxfulPrice(42, 'EUR') assert TaxlessPrice(currency='EUR').new(-10) == TaxlessPrice(-10, 'EUR') assert TaxfulPrice(10, 'GBP').new(5) == TaxfulPrice(5, 'GBP')
def sum_taxless_totals(lines): return sum((x.taxless_total_price for x in lines), TaxlessPrice(0))
def _create_price(self, amount): if self.source and self.source.prices_include_tax(): return TaxfulPrice(amount) else: return TaxlessPrice(amount)
def test_taxed_discount_amounts(): assert_almost_equal(line.taxless_discount_amount, TaxlessPrice(12, 'EUR') / Decimal('1.1')) assert line.taxful_discount_amount == TaxfulPrice(12, 'EUR')
def price(value): return TaxlessPrice(value, 'EUR')
def test_taxed_base_unit_prices(): assert_almost_equal(line.taxless_base_unit_price, TaxlessPrice(5, 'EUR') / Decimal('1.1')) assert line.taxful_base_unit_price == TaxfulPrice(5, 'EUR')
def test_taxed_discounted_unit_prices(): assert_almost_equal(line.taxless_discounted_unit_price, TaxlessPrice(33, 'EUR') / Decimal('1.1') / 9) assert line.taxful_discounted_unit_price == TaxfulPrice(33, 'EUR') / 9
def test_taxed_prices(): assert line.taxful_total_price == line.total_price assert line.taxless_total_price == TaxlessPrice(30, 'EUR') # 33 - 3
def tlprice(value): return TaxlessPrice(value, 'USD')
def test_default_price_value_allowed(rf): request, shop, group = initialize_test(rf, False) shop = get_default_shop() product = create_product("test-product", shop=shop, default_price=100) assert product.get_price(request) == TaxlessPrice(100)
def test_price_property_set_invalid_unit(): m = get_market() with pytest.raises(UnitMixupError): m.price = TaxlessPrice(3, 'GBP') with pytest.raises(UnitMixupError): m.price = TaxfulPrice(3, 'USD')
def test_money_propped_type_checking_taxness(): foo = Foo(currency='EUR', includes_tax=True) with pytest.raises(TypeError): FooItem(foo=foo, price=TaxlessPrice(42, 'EUR'))