예제 #1
0
def _create_price(price, includes_tax):
    if includes_tax:
        return TaxfulPrice(price)
    else:
        return TaxlessPrice(price)
예제 #2
0
def test_tax_mixup():
    with pytest.raises(TypeError):
        TaxfulPrice(42, 'EUR') - TaxlessPrice(2, 'EUR')
예제 #3
0
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')
예제 #4
0
def sum_taxless_totals(lines):
    return sum((x.taxless_total_price for x in lines), TaxlessPrice(0))
예제 #5
0
 def _create_price(self, amount):
     if self.source and self.source.prices_include_tax():
         return TaxfulPrice(amount)
     else:
         return TaxlessPrice(amount)
예제 #6
0
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')
예제 #7
0
def price(value):
    return TaxlessPrice(value, 'EUR')
예제 #8
0
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')
예제 #9
0
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
예제 #10
0
def test_taxed_prices():
    assert line.taxful_total_price == line.total_price
    assert line.taxless_total_price == TaxlessPrice(30, 'EUR')  # 33 - 3
예제 #11
0
def tlprice(value):
    return TaxlessPrice(value, 'USD')
예제 #12
0
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)
예제 #13
0
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')
예제 #14
0
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'))