Просмотр исходного кода

Test for basket weight with line quantities

master
Paweł Kowalski 13 лет назад
Родитель
Сommit
1ae2e46455
1 измененных файлов: 34 добавлений и 26 удалений
  1. 34
    26
      tests/unit/shipping_tests.py

+ 34
- 26
tests/unit/shipping_tests.py Просмотреть файл

@@ -16,7 +16,7 @@ class FreeTest(TestCase):
16 16
 
17 17
     def setUp(self):
18 18
         self.method = Free()
19
-    
19
+
20 20
     def test_shipping_is_free_for_empty_basket(self):
21 21
         basket = Basket()
22 22
         self.method.set_basket(basket)
@@ -29,51 +29,51 @@ class FreeTest(TestCase):
29 29
         self.method.set_basket(basket)
30 30
         self.assertEquals(D('0.00'), self.method.basket_charge_incl_tax())
31 31
         self.assertEquals(D('0.00'), self.method.basket_charge_excl_tax())
32
-        
33
-        
34
-class FixedPriceTest(TestCase):        
35
-    
32
+
33
+
34
+class FixedPriceTest(TestCase):
35
+
36 36
     def test_fixed_price_shipping_charges_for_empty_basket(self):
37 37
         method = FixedPrice(D('10.00'), D('10.00'))
38 38
         basket = Basket()
39 39
         method.set_basket(basket)
40 40
         self.assertEquals(D('10.00'), method.basket_charge_incl_tax())
41 41
         self.assertEquals(D('10.00'), method.basket_charge_excl_tax())
42
-        
42
+
43 43
     def test_fixed_price_shipping_assumes_no_tax(self):
44 44
         method = FixedPrice(D('10.00'))
45 45
         basket = Basket()
46 46
         method.set_basket(basket)
47 47
         self.assertEquals(D('10.00'), method.basket_charge_excl_tax())
48
-        
49
-    shipping_values = lambda: [('1.00',), 
50
-                               ('5.00',), 
51
-                               ('10.00',), 
52
-                               ('12.00',)]    
53
-        
54
-    @dataProvider(shipping_values)    
48
+
49
+    shipping_values = lambda: [('1.00',),
50
+                               ('5.00',),
51
+                               ('10.00',),
52
+                               ('12.00',)]
53
+
54
+    @dataProvider(shipping_values)
55 55
     def test_different_values(self, value):
56 56
         method = FixedPrice(D(value))
57 57
         basket = Basket()
58 58
         method.set_basket(basket)
59 59
         self.assertEquals(D(value), method.basket_charge_excl_tax())
60
-        
61
-        
60
+
61
+
62 62
 class OrderAndItemChargesTests(TestCase):
63
-    
63
+
64 64
     def setUp(self):
65 65
         self.method = OrderAndItemCharges(price_per_order=D('5.00'), price_per_item=D('1.00'))
66 66
         self.basket = Basket.objects.create()
67 67
         self.method.set_basket(self.basket)
68
-    
68
+
69 69
     def test_order_level_charge_for_empty_basket(self):
70 70
         self.assertEquals(D('5.00'), self.method.basket_charge_incl_tax())
71
-        
71
+
72 72
     def test_single_item_basket(self):
73 73
         p = create_product()
74 74
         self.basket.add_product(p)
75 75
         self.assertEquals(D('5.00') + D('1.00'), self.method.basket_charge_incl_tax())
76
-        
76
+
77 77
     def test_multi_item_basket(self):
78 78
         p = create_product()
79 79
         self.basket.add_product(p, 7)
@@ -81,15 +81,15 @@ class OrderAndItemChargesTests(TestCase):
81 81
 
82 82
 
83 83
 class ZeroFreeThresholdTest(TestCase):
84
-    
84
+
85 85
     def setUp(self):
86 86
         self.method = OrderAndItemCharges(price_per_order=D('10.00'), free_shipping_threshold=D('0.00'))
87 87
         self.basket = Basket.objects.create()
88 88
         self.method.set_basket(self.basket)
89
-    
89
+
90 90
     def test_free_shipping_with_empty_basket(self):
91 91
         self.assertEquals(D('0.00'), self.method.basket_charge_incl_tax())
92
-        
92
+
93 93
     def test_free_shipping_with_nonempty_basket(self):
94 94
         p = create_product(D('5.00'))
95 95
         self.basket.add_product(p)
@@ -97,22 +97,22 @@ class ZeroFreeThresholdTest(TestCase):
97 97
 
98 98
 
99 99
 class NonZeroFreeThresholdTest(TestCase):
100
-    
100
+
101 101
     def setUp(self):
102 102
         self.method = OrderAndItemCharges(price_per_order=D('10.00'), free_shipping_threshold=D('20.00'))
103 103
         self.basket = Basket.objects.create()
104 104
         self.method.set_basket(self.basket)
105
-        
105
+
106 106
     def test_basket_below_threshold(self):
107 107
         p = create_product(D('5.00'))
108 108
         self.basket.add_product(p)
109 109
         self.assertEquals(D('10.00'), self.method.basket_charge_incl_tax())
110
-        
110
+
111 111
     def test_basket_on_threshold(self):
112 112
         p = create_product(D('5.00'))
113 113
         self.basket.add_product(p, 4)
114 114
         self.assertEquals(D('0.00'), self.method.basket_charge_incl_tax())
115
-        
115
+
116 116
     def test_basket_above_threshold(self):
117 117
         p = create_product(D('5.00'))
118 118
         self.basket.add_product(p, 8)
@@ -151,6 +151,14 @@ class ScalesTests(TestCase):
151 151
         scales = Scales(attribute_code='weight')
152 152
         self.assertEquals(1+2, scales.weigh_basket(basket))
153 153
 
154
+    def test_weight_calculation_of_basket_with_line_quantity(self):
155
+        basket = Basket()
156
+        basket.add_product(create_product(attributes={'weight': 1}), quantity=3)
157
+        basket.add_product(create_product(attributes={'weight': 2}), quantity=4)
158
+
159
+        scales = Scales(attribute_code='weight')
160
+        self.assertEquals(1*3+2*4, scales.weigh_basket(basket))
161
+
154 162
 
155 163
 class WeightBasedMethodTests(TestCase):
156 164
 

Загрузка…
Отмена
Сохранить