瀏覽代碼

Stopped treating checkout:index as a special case.

This view has a form that assumes anon checkout is allowed, which it
isn't always.  Treating it as a special case was causing it to be
displayed when it shouldn't.
master
David Winterbottom 13 年之前
父節點
當前提交
f9b34c4740
共有 3 個文件被更改,包括 8 次插入10 次删除
  1. 1
    3
      oscar/apps/checkout/app.py
  2. 1
    1
      sandbox/settings.py
  3. 6
    6
      tests/functional/checkout_tests.py

+ 1
- 3
oscar/apps/checkout/app.py 查看文件

@@ -10,7 +10,7 @@ from oscar.apps.checkout.views import IndexView, ShippingAddressView, UserAddres
10 10
 
11 11
 class CheckoutApplication(Application):
12 12
     name = 'checkout'
13
-    
13
+
14 14
     index_view = IndexView
15 15
     shipping_address_view = ShippingAddressView
16 16
     user_address_create_view = UserAddressCreateView
@@ -40,8 +40,6 @@ class CheckoutApplication(Application):
40 40
         return self.post_process_urls(urlpatterns)
41 41
 
42 42
     def get_url_decorator(self, pattern):
43
-        if pattern.name == 'index':
44
-            return None
45 43
         if not settings.OSCAR_ALLOW_ANON_CHECKOUT:
46 44
             return login_required
47 45
         if pattern.name.startswith('user-address'):

+ 1
- 1
sandbox/settings.py 查看文件

@@ -247,7 +247,7 @@ from oscar.defaults import *
247 247
 
248 248
 
249 249
 OSCAR_RECENTLY_VIEWED_PRODUCTS = 20
250
-OSCAR_ALLOW_ANON_CHECKOUT = True
250
+OSCAR_ALLOW_ANON_CHECKOUT = False
251 251
 OSCAR_INITIAL_ORDER_STATUS = 'Pending'
252 252
 OSCAR_INITIAL_LINE_STATUS = 'Pending'
253 253
 OSCAR_ORDER_STATUS_PIPELINE = {

+ 6
- 6
tests/functional/checkout_tests.py 查看文件

@@ -55,10 +55,10 @@ class CheckoutMixin(object):
55 55
 class DisabledAnonymousCheckoutViewsTests(ClientTestCase):
56 56
     is_anonymous = True
57 57
 
58
-    def test_index_does_not_require_login(self):
58
+    def test_index_does_require_login(self):
59 59
         url = reverse('checkout:index')
60 60
         response = self.client.get(url)
61
-        self.assertIsOk(response)
61
+        self.assertIsRedirect(response)
62 62
 
63 63
     def test_user_address_views_require_a_login(self):
64 64
         urls = [reverse('checkout:user-address-create'),
@@ -118,7 +118,7 @@ class TestShippingAddressView(ClientTestCase, CheckoutMixin):
118 118
         self.add_product_to_basket()
119 119
         response = self.client.get(reverse('checkout:shipping-address'))
120 120
         self.assertIsOk(response)
121
-    
121
+
122 122
     def test_anon_checkout_disabled_by_default(self):
123 123
         self.assertFalse(settings.OSCAR_ALLOW_ANON_CHECKOUT)
124 124
 
@@ -163,13 +163,13 @@ class TestShippingMethodView(ClientTestCase, CheckoutMixin):
163 163
 class TestPaymentMethodView(ClientTestCase, CheckoutMixin):
164 164
 
165 165
     def test_view_redirects_if_no_shipping_address(self):
166
-        self.add_product_to_basket() 
166
+        self.add_product_to_basket()
167 167
         response = self.client.get(reverse('checkout:payment-method'))
168 168
         self.assertIsRedirect(response)
169 169
         self.assertRedirectUrlName(response, 'checkout:shipping-address')
170 170
 
171 171
     def test_view_redirects_if_no_shipping_method(self):
172
-        self.add_product_to_basket() 
172
+        self.add_product_to_basket()
173 173
         self.complete_shipping_address()
174 174
         response = self.client.get(reverse('checkout:payment-method'))
175 175
         self.assertIsRedirect(response)
@@ -253,7 +253,7 @@ class TestOrderPlacement(ClientTestCase, CheckoutMixin):
253 253
         self.assertIsRedirect(self.response)
254 254
         orders = Order.objects.all()
255 255
         self.assertEqual(1, len(orders))
256
-        
256
+
257 257
 
258 258
 class TestPlacingOrderUsingAVoucher(ClientTestCase, CheckoutMixin):
259 259
 

Loading…
取消
儲存