소스 검색

Test for basket weight with line quantities

master
Paweł Kowalski 13 년 전
부모
커밋
1ae2e46455
1개의 변경된 파일34개의 추가작업 그리고 26개의 파일을 삭제
  1. 34
    26
      tests/unit/shipping_tests.py

+ 34
- 26
tests/unit/shipping_tests.py 파일 보기

16
 
16
 
17
     def setUp(self):
17
     def setUp(self):
18
         self.method = Free()
18
         self.method = Free()
19
-    
19
+
20
     def test_shipping_is_free_for_empty_basket(self):
20
     def test_shipping_is_free_for_empty_basket(self):
21
         basket = Basket()
21
         basket = Basket()
22
         self.method.set_basket(basket)
22
         self.method.set_basket(basket)
29
         self.method.set_basket(basket)
29
         self.method.set_basket(basket)
30
         self.assertEquals(D('0.00'), self.method.basket_charge_incl_tax())
30
         self.assertEquals(D('0.00'), self.method.basket_charge_incl_tax())
31
         self.assertEquals(D('0.00'), self.method.basket_charge_excl_tax())
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
     def test_fixed_price_shipping_charges_for_empty_basket(self):
36
     def test_fixed_price_shipping_charges_for_empty_basket(self):
37
         method = FixedPrice(D('10.00'), D('10.00'))
37
         method = FixedPrice(D('10.00'), D('10.00'))
38
         basket = Basket()
38
         basket = Basket()
39
         method.set_basket(basket)
39
         method.set_basket(basket)
40
         self.assertEquals(D('10.00'), method.basket_charge_incl_tax())
40
         self.assertEquals(D('10.00'), method.basket_charge_incl_tax())
41
         self.assertEquals(D('10.00'), method.basket_charge_excl_tax())
41
         self.assertEquals(D('10.00'), method.basket_charge_excl_tax())
42
-        
42
+
43
     def test_fixed_price_shipping_assumes_no_tax(self):
43
     def test_fixed_price_shipping_assumes_no_tax(self):
44
         method = FixedPrice(D('10.00'))
44
         method = FixedPrice(D('10.00'))
45
         basket = Basket()
45
         basket = Basket()
46
         method.set_basket(basket)
46
         method.set_basket(basket)
47
         self.assertEquals(D('10.00'), method.basket_charge_excl_tax())
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
     def test_different_values(self, value):
55
     def test_different_values(self, value):
56
         method = FixedPrice(D(value))
56
         method = FixedPrice(D(value))
57
         basket = Basket()
57
         basket = Basket()
58
         method.set_basket(basket)
58
         method.set_basket(basket)
59
         self.assertEquals(D(value), method.basket_charge_excl_tax())
59
         self.assertEquals(D(value), method.basket_charge_excl_tax())
60
-        
61
-        
60
+
61
+
62
 class OrderAndItemChargesTests(TestCase):
62
 class OrderAndItemChargesTests(TestCase):
63
-    
63
+
64
     def setUp(self):
64
     def setUp(self):
65
         self.method = OrderAndItemCharges(price_per_order=D('5.00'), price_per_item=D('1.00'))
65
         self.method = OrderAndItemCharges(price_per_order=D('5.00'), price_per_item=D('1.00'))
66
         self.basket = Basket.objects.create()
66
         self.basket = Basket.objects.create()
67
         self.method.set_basket(self.basket)
67
         self.method.set_basket(self.basket)
68
-    
68
+
69
     def test_order_level_charge_for_empty_basket(self):
69
     def test_order_level_charge_for_empty_basket(self):
70
         self.assertEquals(D('5.00'), self.method.basket_charge_incl_tax())
70
         self.assertEquals(D('5.00'), self.method.basket_charge_incl_tax())
71
-        
71
+
72
     def test_single_item_basket(self):
72
     def test_single_item_basket(self):
73
         p = create_product()
73
         p = create_product()
74
         self.basket.add_product(p)
74
         self.basket.add_product(p)
75
         self.assertEquals(D('5.00') + D('1.00'), self.method.basket_charge_incl_tax())
75
         self.assertEquals(D('5.00') + D('1.00'), self.method.basket_charge_incl_tax())
76
-        
76
+
77
     def test_multi_item_basket(self):
77
     def test_multi_item_basket(self):
78
         p = create_product()
78
         p = create_product()
79
         self.basket.add_product(p, 7)
79
         self.basket.add_product(p, 7)
81
 
81
 
82
 
82
 
83
 class ZeroFreeThresholdTest(TestCase):
83
 class ZeroFreeThresholdTest(TestCase):
84
-    
84
+
85
     def setUp(self):
85
     def setUp(self):
86
         self.method = OrderAndItemCharges(price_per_order=D('10.00'), free_shipping_threshold=D('0.00'))
86
         self.method = OrderAndItemCharges(price_per_order=D('10.00'), free_shipping_threshold=D('0.00'))
87
         self.basket = Basket.objects.create()
87
         self.basket = Basket.objects.create()
88
         self.method.set_basket(self.basket)
88
         self.method.set_basket(self.basket)
89
-    
89
+
90
     def test_free_shipping_with_empty_basket(self):
90
     def test_free_shipping_with_empty_basket(self):
91
         self.assertEquals(D('0.00'), self.method.basket_charge_incl_tax())
91
         self.assertEquals(D('0.00'), self.method.basket_charge_incl_tax())
92
-        
92
+
93
     def test_free_shipping_with_nonempty_basket(self):
93
     def test_free_shipping_with_nonempty_basket(self):
94
         p = create_product(D('5.00'))
94
         p = create_product(D('5.00'))
95
         self.basket.add_product(p)
95
         self.basket.add_product(p)
97
 
97
 
98
 
98
 
99
 class NonZeroFreeThresholdTest(TestCase):
99
 class NonZeroFreeThresholdTest(TestCase):
100
-    
100
+
101
     def setUp(self):
101
     def setUp(self):
102
         self.method = OrderAndItemCharges(price_per_order=D('10.00'), free_shipping_threshold=D('20.00'))
102
         self.method = OrderAndItemCharges(price_per_order=D('10.00'), free_shipping_threshold=D('20.00'))
103
         self.basket = Basket.objects.create()
103
         self.basket = Basket.objects.create()
104
         self.method.set_basket(self.basket)
104
         self.method.set_basket(self.basket)
105
-        
105
+
106
     def test_basket_below_threshold(self):
106
     def test_basket_below_threshold(self):
107
         p = create_product(D('5.00'))
107
         p = create_product(D('5.00'))
108
         self.basket.add_product(p)
108
         self.basket.add_product(p)
109
         self.assertEquals(D('10.00'), self.method.basket_charge_incl_tax())
109
         self.assertEquals(D('10.00'), self.method.basket_charge_incl_tax())
110
-        
110
+
111
     def test_basket_on_threshold(self):
111
     def test_basket_on_threshold(self):
112
         p = create_product(D('5.00'))
112
         p = create_product(D('5.00'))
113
         self.basket.add_product(p, 4)
113
         self.basket.add_product(p, 4)
114
         self.assertEquals(D('0.00'), self.method.basket_charge_incl_tax())
114
         self.assertEquals(D('0.00'), self.method.basket_charge_incl_tax())
115
-        
115
+
116
     def test_basket_above_threshold(self):
116
     def test_basket_above_threshold(self):
117
         p = create_product(D('5.00'))
117
         p = create_product(D('5.00'))
118
         self.basket.add_product(p, 8)
118
         self.basket.add_product(p, 8)
151
         scales = Scales(attribute_code='weight')
151
         scales = Scales(attribute_code='weight')
152
         self.assertEquals(1+2, scales.weigh_basket(basket))
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
 class WeightBasedMethodTests(TestCase):
163
 class WeightBasedMethodTests(TestCase):
156
 
164
 

Loading…
취소
저장