def test_apply_tax_to_price_include_tax(taxes): money = Money(100, "USD") assert apply_tax_to_price(taxes, "standard", money) == TaxedMoney( net=Money("81.30", "USD"), gross=Money(100, "USD") ) assert apply_tax_to_price(taxes, "medical", money) == TaxedMoney( net=Money("92.59", "USD"), gross=Money(100, "USD") )
def test_apply_tax_to_price_no_taxes_return_taxed_money_range(): money_range = MoneyRange(Money(100, "USD"), Money(200, "USD")) taxed_money_range = TaxedMoneyRange( TaxedMoney(net=Money(100, "USD"), gross=Money(100, "USD")), TaxedMoney(net=Money(200, "USD"), gross=Money(200, "USD")), ) assert apply_tax_to_price(None, "standard", money_range) == taxed_money_range assert apply_tax_to_price(None, "standard", taxed_money_range) == taxed_money_range
def test_apply_tax_to_price_include_fallback_to_standard_rate(taxes): money = Money(100, "USD") assert apply_tax_to_price(taxes, "space suits", money) == TaxedMoney(net=Money("81.30", "USD"), gross=Money(100, "USD")) taxed_money = TaxedMoney(net=Money(100, "USD"), gross=Money(100, "USD")) assert apply_tax_to_price(taxes, "space suits", taxed_money) == TaxedMoney( net=Money("81.30", "USD"), gross=Money(100, "USD"))
def test_apply_tax_to_price_do_not_include_tax_fallback_to_standard_rate( site_settings, taxes): site_settings.include_taxes_in_prices = False site_settings.save() money = Money(100, "USD") taxed_money = TaxedMoney(net=Money(100, "USD"), gross=Money(123, "USD")) assert apply_tax_to_price(taxes, "space suits", money) == taxed_money
def test_apply_tax_to_price_do_not_include_tax(site_settings, taxes): site_settings.include_taxes_in_prices = False site_settings.save() money = Money(100, "USD") assert apply_tax_to_price(taxes, "standard", money) == TaxedMoney( net=Money(100, "USD"), gross=Money(123, "USD") ) assert apply_tax_to_price(taxes, "medical", money) == TaxedMoney( net=Money(100, "USD"), gross=Money(108, "USD") ) taxed_money = TaxedMoney(net=Money(100, "USD"), gross=Money(100, "USD")) assert apply_tax_to_price(taxes, "standard", taxed_money) == TaxedMoney( net=Money(100, "USD"), gross=Money(123, "USD") ) assert apply_tax_to_price(taxes, "medical", taxed_money) == TaxedMoney( net=Money(100, "USD"), gross=Money(108, "USD") )
def test_apply_tax_to_price_no_taxes_raise_typeerror_for_invalid_type(): with pytest.raises(TypeError): assert apply_tax_to_price(None, "standard", 100)
def test_apply_tax_to_price_no_taxes_return_taxed_money(): money = Money(100, "USD") taxed_money = TaxedMoney(net=Money(100, "USD"), gross=Money(100, "USD")) assert apply_tax_to_price(None, "standard", money) == taxed_money assert apply_tax_to_price(None, "medical", taxed_money) == taxed_money