|
|
@@ -28,6 +28,26 @@ class TestWholeSiteRange(TestCase):
|
|
28
|
28
|
self.assertFalse(self.range.contains_product(self.prod))
|
|
29
|
29
|
|
|
30
|
30
|
|
|
|
31
|
+class TestChildRange(TestCase):
|
|
|
32
|
+
|
|
|
33
|
+ def setUp(self):
|
|
|
34
|
+ self.range = models.Range.objects.create(
|
|
|
35
|
+ name='Child-specific range', includes_all_products=False)
|
|
|
36
|
+ self.parent = create_product(structure='parent')
|
|
|
37
|
+ self.child1 = create_product(structure='child', parent=self.parent)
|
|
|
38
|
+ self.child2 = create_product(structure='child', parent=self.parent)
|
|
|
39
|
+ self.range.add_product(self.child1)
|
|
|
40
|
+
|
|
|
41
|
+ def test_includes_child(self):
|
|
|
42
|
+ self.assertTrue(self.range.contains_product(self.child1))
|
|
|
43
|
+
|
|
|
44
|
+ def test_does_not_include_parent(self):
|
|
|
45
|
+ self.assertFalse(self.range.contains_product(self.parent))
|
|
|
46
|
+
|
|
|
47
|
+ def test_does_not_include_sibling(self):
|
|
|
48
|
+ self.assertFalse(self.range.contains_product(self.child2))
|
|
|
49
|
+
|
|
|
50
|
+
|
|
31
|
51
|
class TestPartialRange(TestCase):
|
|
32
|
52
|
|
|
33
|
53
|
def setUp(self):
|
|
|
@@ -50,9 +70,6 @@ class TestPartialRange(TestCase):
|
|
50
|
70
|
self.assertTrue(self.range.contains_product(self.parent))
|
|
51
|
71
|
self.assertTrue(self.range.contains_product(self.child))
|
|
52
|
72
|
|
|
53
|
|
- def test_cant_add_child_product(self):
|
|
54
|
|
- self.assertRaises(ValueError, self.range.add_product, self.child)
|
|
55
|
|
-
|
|
56
|
73
|
def test_included_class_with_exception(self):
|
|
57
|
74
|
self.range.classes.add(self.parent.get_product_class())
|
|
58
|
75
|
self.range.excluded_products.add(self.parent)
|