| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- from django.test import TestCase
-
- from oscar.apps.partner import availability
-
-
- class TestBasePolicy(TestCase):
-
- def setUp(self):
- self.availability = availability.Base()
-
- def test_does_not_allow_any_purchases(self):
- result, __ = self.availability.is_purchase_permitted(1)
- self.assertFalse(result)
-
- def test_is_not_available_to_buy(self):
- result = self.availability.is_available_to_buy
- self.assertFalse(result)
-
-
- class TestUnavailablePolicy(TestCase):
-
- def setUp(self):
- self.availability = availability.Unavailable()
-
- def test_is_unavailable(self):
- self.assertFalse(self.availability.is_available_to_buy)
-
- def test_does_not_allow_any_purchases(self):
- result, __ = self.availability.is_purchase_permitted(1)
- self.assertFalse(result)
-
- def test_gives_a_reason_for_unavailability(self):
- __, msg = self.availability.is_purchase_permitted(1)
- self.assertEqual("unavailable", msg)
-
- def test_returns_availability_code(self):
- self.assertEqual('unavailable', self.availability.code)
-
-
- class TestStockRequiredWrapperForRecordWithStock(TestCase):
-
- def setUp(self):
- self.availability = availability.StockRequired(5)
-
- def test_is_available_to_buy(self):
- self.assertTrue(self.availability.is_available_to_buy)
-
- def test_permits_purchases_up_to_stock_level(self):
- for x in range(0, 6):
- is_permitted, __ = self.availability.is_purchase_permitted(x)
- self.assertTrue(is_permitted)
-
- def test_forbids_purchases_over_stock_level(self):
- is_permitted, msg = self.availability.is_purchase_permitted(7)
- self.assertFalse(is_permitted)
- self.assertEqual(msg, "a maximum of 5 can be bought")
-
- def test_returns_correct_code(self):
- self.assertEqual('instock', self.availability.code)
-
- def test_returns_correct_message(self):
- self.assertEqual('In stock (5 available)', self.availability.message)
-
- def test_returns_correct_message_when_allocation_higher_than_stock(self):
- # this is the value passed when stock lower than allocation by 1
- self.availability.num_available = -1
- is_permitted, msg = self.availability.is_purchase_permitted(1)
- self.assertFalse(is_permitted)
- self.assertEqual(msg, "no stock available")
-
-
- class TestStockRequiredWrapperForRecordWithoutStock(TestCase):
-
- def setUp(self):
- self.availability = availability.StockRequired(0)
-
- def test_is_available_to_buy(self):
- self.assertFalse(self.availability.is_available_to_buy)
-
- def test_forbids_purchases(self):
- is_permitted, __ = self.availability.is_purchase_permitted(1)
- self.assertFalse(is_permitted)
-
- def test_returns_correct_code(self):
- self.assertEqual('outofstock', self.availability.code)
-
- def test_returns_correct_message(self):
- self.assertEqual('Unavailable', self.availability.message)
-
-
- class TestAvailableWrapper(TestCase):
-
- def setUp(self):
- self.availability = availability.Available()
-
- def test_is_available_to_buy(self):
- self.assertTrue(self.availability.is_available_to_buy)
-
- def test_permits_any_purchase(self):
- is_permitted, __ = self.availability.is_purchase_permitted(10000)
- self.assertTrue(is_permitted)
-
- def test_returns_correct_code(self):
- self.assertEqual('available', self.availability.code)
-
- def test_returns_correct_message(self):
- self.assertEqual('Available', self.availability.message)
|