| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- from django.test import TestCase
-
- from oscar.apps.offer import models
- from oscar.test.factories import create_product
-
-
- class TestWholeSiteRange(TestCase):
-
- def setUp(self):
- self.range = models.Range.objects.create(
- name="All products", includes_all_products=True)
- self.prod = create_product()
-
- def test_all_products_range(self):
- self.assertTrue(self.range.contains_product(self.prod))
-
- def test_whitelisting(self):
- self.range.add_product(self.prod)
- self.assertTrue(self.range.contains_product(self.prod))
-
- def test_blacklisting(self):
- self.range.excluded_products.add(self.prod)
- self.assertFalse(self.range.contains_product(self.prod))
-
-
- class TestPartialRange(TestCase):
-
- def setUp(self):
- self.range = models.Range.objects.create(
- name="All products", includes_all_products=False)
- self.parent = create_product(structure='parent')
- self.child = create_product(structure='child', parent=self.parent)
-
- def test_empty_list(self):
- self.assertFalse(self.range.contains_product(self.parent))
- self.assertFalse(self.range.contains_product(self.child))
-
- def test_included_classes(self):
- self.range.classes.add(self.parent.get_product_class())
- self.assertTrue(self.range.contains_product(self.parent))
- self.assertTrue(self.range.contains_product(self.child))
-
- def test_includes(self):
- self.range.add_product(self.parent)
- self.assertTrue(self.range.contains_product(self.parent))
- self.assertTrue(self.range.contains_product(self.child))
-
- def test_cant_add_child_product(self):
- self.assertRaises(ValueError, self.range.add_product, self.child)
-
- def test_included_class_with_exception(self):
- self.range.classes.add(self.parent.get_product_class())
- self.range.excluded_products.add(self.parent)
- self.assertFalse(self.range.contains_product(self.parent))
- self.assertFalse(self.range.contains_product(self.child))
-
-
- class TestRangeModel(TestCase):
-
- def test_ensures_unique_slugs_are_used(self):
- first_range = models.Range.objects.create(name="Foo")
- first_range.name = "Bar"
- first_range.save()
- models.Range.objects.create(name="Foo")
|