ソースを参照

Make fixes for deprecations in Django 3.2 and Python

- Add new "DEFAULT_AUTO_FIELD" Django 3.2 setting
- Fix deprecated (in "gettext") use of non-int numbers for selecting
  plural translations
- Provide "get_response" callable when creating middleware-factory
  instance in tests
master
Joseph Wayodi 4年前
コミット
3510e7d547

+ 4
- 0
sandbox/settings.py ファイルの表示

@@ -104,6 +104,10 @@ STATICFILES_FINDERS = (
104 104
     'django.contrib.staticfiles.finders.AppDirectoriesFinder',
105 105
 )
106 106
 
107
+# Default primary key field type
108
+# https://docs.djangoproject.com/en/dev/ref/settings/#default-auto-field
109
+DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'
110
+
107 111
 # Make this unique, and don't share it with anybody.
108 112
 SECRET_KEY = env.str('SECRET_KEY', default='UajFCuyjDKmWHe29neauXzHi9eZoRXr6RMbT5JyAdPiACBP6Cra2')
109 113
 

+ 2
- 2
src/oscar/apps/offer/conditions.py ファイルの表示

@@ -73,7 +73,7 @@ class CountCondition(Condition):
73 73
             return ngettext(
74 74
                 'Buy %(delta)d more product from %(range)s',
75 75
                 'Buy %(delta)d more products from %(range)s',
76
-                delta
76
+                int(delta)
77 77
             ) % {'delta': delta, 'range': self.range}
78 78
 
79 79
     def consume_items(self, offer, basket, affected_lines):
@@ -157,7 +157,7 @@ class CoverageCondition(Condition):
157 157
             return ngettext(
158 158
                 'Buy %(delta)d more product from %(range)s',
159 159
                 'Buy %(delta)d more products from %(range)s',
160
-                delta
160
+                int(delta)
161 161
             ) % {'delta': delta, 'range': self.range}
162 162
 
163 163
     def is_partially_satisfied(self, offer, basket):

+ 6
- 1
tests/integration/checkout/test_session.py ファイルの表示

@@ -1,6 +1,7 @@
1 1
 from unittest import mock
2 2
 
3 3
 from django.contrib.sessions.middleware import SessionMiddleware
4
+from django.http import HttpResponse
4 5
 from django.test import TestCase
5 6
 from django.test.client import RequestFactory
6 7
 
@@ -12,9 +13,13 @@ class TestCheckoutSession(TestCase):
12 13
     oscar.apps.checkout.utils.CheckoutSessionData
13 14
     """
14 15
 
16
+    @staticmethod
17
+    def get_response_for_test(request):
18
+        return HttpResponse()
19
+
15 20
     def setUp(self):
16 21
         request = RequestFactory().get('/')
17
-        SessionMiddleware().process_request(request)
22
+        SessionMiddleware(self.get_response_for_test).process_request(request)
18 23
         self.session_data = CheckoutSessionData(request)
19 24
 
20 25
     def test_allows_data_to_be_written_and_read_out(self):

+ 6
- 1
tests/unit/checkout/test_checkout_session_data.py ファイルの表示

@@ -2,16 +2,21 @@ from unittest.mock import Mock
2 2
 
3 3
 import pytest
4 4
 from django.contrib.sessions.middleware import SessionMiddleware
5
+from django.http import HttpResponse
5 6
 
6 7
 from oscar.apps.checkout.forms import ShippingAddressForm
7 8
 from oscar.apps.checkout.utils import CheckoutSessionData
8 9
 
9 10
 
11
+def get_response_for_test(request):
12
+    return HttpResponse()
13
+
14
+
10 15
 @pytest.fixture
11 16
 def csdf(rf):
12 17
     """"""
13 18
     request = rf.get('/')
14
-    middleware = SessionMiddleware()
19
+    middleware = SessionMiddleware(get_response_for_test)
15 20
     middleware.process_request(request)
16 21
     return CheckoutSessionData(request)
17 22
 

読み込み中…
キャンセル
保存