|
|
@@ -1,7 +1,12 @@
|
|
1
|
1
|
from oscar.apps.basket import models
|
|
|
2
|
+from oscar.core.loading import get_model
|
|
2
|
3
|
from oscar.test import factories
|
|
3
|
4
|
from oscar.test.testcases import WebTestCase
|
|
4
|
5
|
|
|
|
6
|
+Option = get_model("catalogue", "Option")
|
|
|
7
|
+AttributeOptionGroup = get_model("catalogue", "AttributeOptionGroup")
|
|
|
8
|
+AttributeOption = get_model("catalogue", "AttributeOption")
|
|
|
9
|
+
|
|
5
|
10
|
|
|
6
|
11
|
class TestAddingToBasket(WebTestCase):
|
|
7
|
12
|
|
|
|
@@ -34,3 +39,33 @@ class TestAddingToBasket(WebTestCase):
|
|
34
|
39
|
|
|
35
|
40
|
basket = baskets[0]
|
|
36
|
41
|
self.assertEqual(3, basket.num_items)
|
|
|
42
|
+
|
|
|
43
|
+ def test_validation_errors_in_form(self):
|
|
|
44
|
+ product = factories.ProductFactory()
|
|
|
45
|
+ product_class = product.get_product_class()
|
|
|
46
|
+ group = AttributeOptionGroup.objects.create(name="checkbox options")
|
|
|
47
|
+ AttributeOption.objects.create(group=group, option="1")
|
|
|
48
|
+ AttributeOption.objects.create(group=group, option="2")
|
|
|
49
|
+
|
|
|
50
|
+ option = Option.objects.create(
|
|
|
51
|
+ type=Option.CHECKBOX,
|
|
|
52
|
+ required=True,
|
|
|
53
|
+ name="Required checkbox",
|
|
|
54
|
+ option_group=group
|
|
|
55
|
+ )
|
|
|
56
|
+ text_option = Option.objects.create(type=Option.TEXT, required=False, name="Open tekst")
|
|
|
57
|
+
|
|
|
58
|
+ product_class.options.add(option)
|
|
|
59
|
+ product_class.options.add(text_option)
|
|
|
60
|
+ product_class.save()
|
|
|
61
|
+
|
|
|
62
|
+ detail_page = self.get(product.get_absolute_url())
|
|
|
63
|
+ detail_page.forms["add_to_basket_form"]["open-tekst"] = "test harrie"
|
|
|
64
|
+ response = detail_page.forms['add_to_basket_form'].submit().follow()
|
|
|
65
|
+
|
|
|
66
|
+ self.assertEqual(response.forms["add_to_basket_form"]["open-tekst"].value, "test harrie")
|
|
|
67
|
+ baskets = models.Basket.objects.all()
|
|
|
68
|
+ self.assertEqual(1, len(baskets))
|
|
|
69
|
+
|
|
|
70
|
+ basket = baskets[0]
|
|
|
71
|
+ self.assertEqual(0, basket.lines.count())
|