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.4KB

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