Sfoglia il codice sorgente

Remove unnecessary webob dependency from oscar.test utils.

Fixes #2547.
master
Samir Shah 8 anni fa
parent
commit
86fe75de4d

+ 14
- 0
src/oscar/core/compat.py Vedi File

@@ -10,6 +10,13 @@ from django.utils import six
10 10
 from oscar.core.loading import get_model
11 11
 
12 12
 
13
+try:
14
+    # Python 3
15
+    from http.cookies import _unquote
16
+except ImportError:
17
+    from Cookie import _unquote
18
+
19
+
13 20
 # A setting that can be used in foreign key declarations
14 21
 AUTH_USER_MODEL = getattr(settings, 'AUTH_USER_MODEL', 'auth.User')
15 22
 try:
@@ -73,6 +80,13 @@ def existing_user_fields(fields):
73 80
 
74 81
 # Python3 compatibility layer
75 82
 
83
+def unquote_cookie(cookie_value):
84
+    """
85
+    Make sure a cookie value is unescaped from double quotes
86
+    """
87
+    return _unquote(cookie_value)
88
+
89
+
76 90
 """
77 91
 Unicode compatible wrapper for CSV reader and writer that abstracts away
78 92
 differences between Python 2 and 3. A package like unicodecsv would be

+ 0
- 12
src/oscar/test/utils.py Vedi File

@@ -3,8 +3,6 @@ from django.contrib.messages.storage.fallback import FallbackStorage
3 3
 from django.contrib.sessions.backends.db import SessionStore
4 4
 from django.core.signing import Signer
5 5
 from django.test import RequestFactory as BaseRequestFactory
6
-from webob.compat import bytes_
7
-from webob.cookies import _unquote
8 6
 
9 7
 from oscar.core.loading import get_class, get_model
10 8
 
@@ -28,13 +26,3 @@ class RequestFactory(BaseRequestFactory):
28 26
         request.cookies_to_delete = []
29 27
 
30 28
         return request
31
-
32
-
33
-def extract_cookie_value(response_cookies, cookie_name):
34
-    """
35
-    Making sure cookie unescaped from double quotes when extracting from
36
-    test response using Webob approach of cookie parsing.
37
-    """
38
-    oscar_open_basket_cookie = bytes_(response_cookies[cookie_name])
39
-    oscar_open_basket_cookie = _unquote(oscar_open_basket_cookie)
40
-    return oscar_open_basket_cookie.decode('utf-8')

+ 3
- 4
tests/functional/customer/test_history.py Vedi File

@@ -2,12 +2,11 @@ from django.conf import settings
2 2
 from django.http import HttpRequest
3 3
 from django.urls import reverse
4 4
 
5
-from oscar.test.factories import create_product
6
-from oscar.core.compat import get_user_model
7 5
 from oscar.apps.customer import history
6
+from oscar.core.compat import get_user_model, unquote_cookie
8 7
 from oscar.templatetags.history_tags import get_back_button
8
+from oscar.test.factories import create_product
9 9
 from oscar.test.testcases import WebTestCase
10
-from oscar.test.utils import extract_cookie_value
11 10
 
12 11
 
13 12
 User = get_user_model()
@@ -26,7 +25,7 @@ class HistoryHelpersTest(WebTestCase):
26 25
     def test_id_gets_added_to_cookie(self):
27 26
         response = self.app.get(self.product.get_absolute_url())
28 27
         request = HttpRequest()
29
-        request.COOKIES[COOKIE_NAME] = extract_cookie_value(response.test_app.cookies, COOKIE_NAME)
28
+        request.COOKIES[COOKIE_NAME] = unquote_cookie(response.test_app.cookies[COOKIE_NAME])
30 29
         self.assertTrue(self.product.id in history.extract(request))
31 30
 
32 31
     def test_get_back_button(self):

+ 6
- 9
tests/functional/test_basket.py Vedi File

@@ -7,15 +7,14 @@ from django.urls import reverse
7 7
 from django.utils.six.moves import http_client
8 8
 from django.utils.translation import ugettext
9 9
 
10
-from oscar.test.factories import create_product
11
-from oscar.core.compat import get_user_model
12
-from oscar.test import factories
13
-from oscar.test.basket import add_product
14
-from oscar.test.utils import extract_cookie_value
15 10
 from oscar.apps.basket import reports
16 11
 from oscar.apps.basket.models import Basket
17
-from oscar.test.testcases import WebTestCase
18 12
 from oscar.apps.partner import strategy
13
+from oscar.core.compat import get_user_model, unquote_cookie
14
+from oscar.test import factories
15
+from oscar.test.basket import add_product
16
+from oscar.test.factories import create_product
17
+from oscar.test.testcases import WebTestCase
19 18
 
20 19
 
21 20
 User = get_user_model()
@@ -60,9 +59,7 @@ class AnonAddToBasketViewTests(WebTestCase):
60 59
         self.assertTrue('oscar_open_basket' in self.response.test_app.cookies)
61 60
 
62 61
     def test_price_is_recorded(self):
63
-        oscar_open_basket_cookie = extract_cookie_value(
64
-            self.response.test_app.cookies, 'oscar_open_basket'
65
-        )
62
+        oscar_open_basket_cookie = unquote_cookie(self.response.test_app.cookies['oscar_open_basket'])
66 63
         basket_id = oscar_open_basket_cookie.split(':')[0]
67 64
         basket = Basket.objects.get(id=basket_id)
68 65
         line = basket.lines.get(product=self.product)

Loading…
Annulla
Salva