Pārlūkot izejas kodu

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 gadus atpakaļ
vecāks
revīzija
3510e7d547

+ 4
- 0
sandbox/settings.py Parādīt failu

104
     'django.contrib.staticfiles.finders.AppDirectoriesFinder',
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
 # Make this unique, and don't share it with anybody.
111
 # Make this unique, and don't share it with anybody.
108
 SECRET_KEY = env.str('SECRET_KEY', default='UajFCuyjDKmWHe29neauXzHi9eZoRXr6RMbT5JyAdPiACBP6Cra2')
112
 SECRET_KEY = env.str('SECRET_KEY', default='UajFCuyjDKmWHe29neauXzHi9eZoRXr6RMbT5JyAdPiACBP6Cra2')
109
 
113
 

+ 2
- 2
src/oscar/apps/offer/conditions.py Parādīt failu

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

+ 6
- 1
tests/integration/checkout/test_session.py Parādīt failu

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

+ 6
- 1
tests/unit/checkout/test_checkout_session_data.py Parādīt failu

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

Notiek ielāde…
Atcelt
Saglabāt