|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+import random
|
|
|
2
|
+
|
|
1
|
3
|
from django.contrib.messages.constants import SUCCESS, WARNING
|
|
2
|
4
|
from django.test import TestCase
|
|
3
|
5
|
from django.urls import reverse
|
|
|
@@ -207,3 +209,28 @@ class RangeProductViewTest(WebTestCase):
|
|
207
|
209
|
self.assertTrue(self.range.contains_product(self.child1))
|
|
208
|
210
|
self.assertTrue(self.range.contains_product(self.child2))
|
|
209
|
211
|
self.assertFalse(self.range.contains_product(self.parent))
|
|
|
212
|
+
|
|
|
213
|
+
|
|
|
214
|
+class RangeReorderViewTest(WebTestCase):
|
|
|
215
|
+ is_staff = True
|
|
|
216
|
+ csrf_checks = False
|
|
|
217
|
+
|
|
|
218
|
+ def setUp(self):
|
|
|
219
|
+ super().setUp()
|
|
|
220
|
+ self.range = Range.objects.create(name='dummy')
|
|
|
221
|
+ self.url = reverse('dashboard:range-reorder', args=(self.range.id,))
|
|
|
222
|
+ self.product1 = create_product()
|
|
|
223
|
+ self.product2 = create_product()
|
|
|
224
|
+ self.product3 = create_product()
|
|
|
225
|
+ self.range.included_products.set([
|
|
|
226
|
+ self.product1, self.product2, self.product3])
|
|
|
227
|
+
|
|
|
228
|
+ def test_range_product_reordering(self):
|
|
|
229
|
+ product_order = list(self.range.rangeproduct_set.values_list(
|
|
|
230
|
+ 'product_id', flat=True))
|
|
|
231
|
+ random.shuffle(product_order)
|
|
|
232
|
+ data = {'product': product_order}
|
|
|
233
|
+ self.post(self.url, params=data)
|
|
|
234
|
+ new_product_order = list(self.range.rangeproduct_set.values_list(
|
|
|
235
|
+ 'product_id', flat=True).order_by('display_order'))
|
|
|
236
|
+ self.assertEqual(new_product_order, product_order)
|