You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

price_tests.py 1.5KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. from django.test import TestCase
  2. from decimal import Decimal as D
  3. from oscar.core.prices import TaxNotKnown
  4. from oscar.apps.partner import prices, models
  5. class TestUnavailable(TestCase):
  6. def setUp(self):
  7. self.price = prices.Unavailable()
  8. def test_means_unknown_tax(self):
  9. self.assertFalse(self.price.is_tax_known)
  10. def test_means_prices_dont_exist(self):
  11. self.assertFalse(self.price.exists)
  12. def test_means_price_attributes_are_none(self):
  13. self.assertIsNone(self.price.incl_tax)
  14. self.assertIsNone(self.price.excl_tax)
  15. self.assertIsNone(self.price.tax)
  16. class TestDelegateToStockRecord(TestCase):
  17. def setUp(self):
  18. self.record = models.StockRecord(
  19. price_excl_tax=D('12.99'))
  20. self.price = prices.DelegateToStockRecord(self.record)
  21. def test_assumes_tax_is_known(self):
  22. self.assertTrue(self.price.is_tax_known)
  23. def test_has_correct_price(self):
  24. self.assertEquals(self.record.price_excl_tax,
  25. self.price.excl_tax)
  26. class TestFixedPriceWithoutTax(TestCase):
  27. def setUp(self):
  28. self.price = prices.FixedPrice('GBP', D('9.15'))
  29. def test_means_unknown_tax(self):
  30. self.assertFalse(self.price.is_tax_known)
  31. def test_has_correct_price(self):
  32. self.assertEquals(D('9.15'), self.price.excl_tax)
  33. def test_raises_exception_when_asking_for_price_incl_tax(self):
  34. with self.assertRaises(TaxNotKnown):
  35. self.price.incl_tax