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.

strategy_tests.py 1.2KB

12345678910111213141516171819202122232425262728293031323334
  1. from django.test import TestCase
  2. from decimal import Decimal as D
  3. from oscar.apps.partner import strategy
  4. from oscar.apps.catalogue import models
  5. from oscar.test import factories
  6. class TestDefaultStrategy(TestCase):
  7. def setUp(self):
  8. self.strategy = strategy.Default()
  9. def test_no_stockrecords(self):
  10. product = factories.create_product()
  11. info = self.strategy.fetch(product)
  12. self.assertFalse(info.availability.is_available_to_buy)
  13. self.assertIsNone(info.price.incl_tax)
  14. def test_one_stockrecord(self):
  15. product = factories.create_product(price=D('1.99'), num_in_stock=4)
  16. info = self.strategy.fetch(product)
  17. self.assertTrue(info.availability.is_available_to_buy)
  18. self.assertEquals(D('1.99'), info.price.excl_tax)
  19. self.assertEquals(D('1.99'), info.price.incl_tax)
  20. def test_product_which_doesnt_track_stock(self):
  21. product_class = models.ProductClass.objects.create(
  22. name="Digital", track_stock=False)
  23. product = factories.create_product(
  24. product_class=product_class,
  25. price=D('1.99'), num_in_stock=None)
  26. info = self.strategy.fetch(product)
  27. self.assertTrue(info.availability.is_available_to_buy)