Przeglądaj źródła

Remove Django Test Client usages in favor of WebTestCase.

master
Alexander Gaevsky 9 lat temu
rodzic
commit
757220ce09

+ 32
- 35
tests/functional/basket_tests.py Wyświetl plik

@@ -3,16 +3,17 @@ from django.utils.six.moves import http_client
3 3
 import datetime
4 4
 
5 5
 from django.conf import settings
6
-from django.test import TestCase, Client
6
+from django.test import TestCase
7 7
 from django.utils.translation import ugettext
8 8
 from django.core.urlresolvers import reverse
9 9
 
10 10
 from oscar.test.factories import create_product
11 11
 from oscar.core.compat import get_user_model
12
-from oscar.apps.basket.models import Basket
13
-from oscar.apps.basket import reports
14
-from oscar.test.basket import add_product
15 12
 from oscar.test import factories
13
+from oscar.test.basket import add_product
14
+from oscar.apps.basket import reports
15
+from oscar.apps.basket.models import Basket
16
+from oscar.test.testcases import WebTestCase
16 17
 from oscar.apps.partner import strategy
17 18
 
18 19
 
@@ -42,7 +43,8 @@ class TestBasketMerging(TestCase):
42 43
         self.assertEqual(2, line.quantity)
43 44
 
44 45
 
45
-class AnonAddToBasketViewTests(TestCase):
46
+class AnonAddToBasketViewTests(WebTestCase):
47
+    csrf_checks = False
46 48
 
47 49
     def setUp(self):
48 50
         self.product = create_product(
@@ -51,25 +53,24 @@ class AnonAddToBasketViewTests(TestCase):
51 53
         post_params = {'product_id': self.product.id,
52 54
                        'action': 'add',
53 55
                        'quantity': 1}
54
-        self.client = Client()
55
-        self.response = self.client.post(url, post_params)
56
+        self.response = self.app.post(url, params=post_params)
56 57
 
57 58
     def test_cookie_is_created(self):
58
-        self.assertTrue('oscar_open_basket' in self.response.cookies)
59
+        self.assertTrue('oscar_open_basket' in self.response.client.cookies)
59 60
 
60 61
     def test_price_is_recorded(self):
61
-        basket_id = self.response.cookies['oscar_open_basket'].value.split(':')[0]
62
+        basket_id = self.response.client.cookies['oscar_open_basket'].value.split(':')[0]
62 63
         basket = Basket.objects.get(id=basket_id)
63 64
         line = basket.lines.get(product=self.product)
64 65
         stockrecord = self.product.stockrecords.all()[0]
65 66
         self.assertEqual(stockrecord.price_excl_tax, line.price_excl_tax)
66 67
 
67 68
 
68
-class BasketSummaryViewTests(TestCase):
69
+class BasketSummaryViewTests(WebTestCase):
69 70
 
70 71
     def setUp(self):
71 72
         url = reverse('basket:summary')
72
-        self.response = self.client.get(url)
73
+        self.response = self.app.get(url)
73 74
 
74 75
     def test_shipping_method_in_context(self):
75 76
         self.assertTrue('shipping_method' in self.response.context)
@@ -88,7 +89,8 @@ class BasketSummaryViewTests(TestCase):
88 89
         self.assertEqual(0, basket.num_lines)
89 90
 
90 91
 
91
-class BasketThresholdTest(TestCase):
92
+class BasketThresholdTest(WebTestCase):
93
+    csrf_checks = False
92 94
 
93 95
     def setUp(self):
94 96
         self._old_threshold = settings.OSCAR_MAX_BASKET_QUANTITY_THRESHOLD
@@ -103,19 +105,19 @@ class BasketThresholdTest(TestCase):
103 105
         post_params = {'product_id': dummy_product.id,
104 106
                        'action': 'add',
105 107
                        'quantity': 2}
106
-        response = self.client.post(url, post_params)
107
-        self.assertTrue('oscar_open_basket' in response.cookies)
108
+        response = self.app.post(url, params=post_params)
109
+        self.assertTrue('oscar_open_basket' in response.client.cookies)
108 110
         post_params = {'product_id': dummy_product.id,
109 111
                        'action': 'add',
110 112
                        'quantity': 2}
111
-        response = self.client.post(url, post_params)
113
+        response = self.app.post(url, params=post_params)
112 114
 
113 115
         expected = ugettext(
114 116
             "Due to technical limitations we are not able to ship more "
115 117
             "than %(threshold)d items in one order. Your basket currently "
116 118
             "has %(basket)d items."
117 119
         ) % ({'threshold': 3, 'basket': 2})
118
-        self.assertTrue(expected in response.cookies['messages'].value)
120
+        self.assertTrue(expected in response.client.cookies['messages'].value)
119 121
 
120 122
 
121 123
 class BasketReportTests(TestCase):
@@ -139,25 +141,23 @@ class BasketReportTests(TestCase):
139 141
         generator.generate()
140 142
 
141 143
 
142
-class SavedBasketTests(TestCase):
144
+class SavedBasketTests(WebTestCase):
145
+    csrf_checks = False
143 146
 
144 147
     def test_moving_from_saved_basket(self):
145
-        user = User.objects.create_user(username='test', password='pass',
146
-                                        email='test@example.com')
147
-        client = Client()
148
-        client.login(email=user.email, password='pass')
149
-
148
+        self.user = User.objects.create_user(username='test', password='pass',
149
+                                             email='test@example.com')
150 150
         product = create_product(price=D('10.00'), num_in_stock=2)
151 151
         basket = factories.create_basket(empty=True)
152
-        basket.owner = user
152
+        basket.owner = self.user
153 153
         basket.save()
154 154
         add_product(basket, product=product)
155 155
 
156
-        saved_basket, created = Basket.saved.get_or_create(owner=user)
156
+        saved_basket, created = Basket.saved.get_or_create(owner=self.user)
157 157
         saved_basket.strategy = basket.strategy
158 158
         add_product(saved_basket, product=product)
159 159
 
160
-        response = client.get(reverse('basket:summary'))
160
+        response = self.get(reverse('basket:summary'))
161 161
         saved_formset = response.context['saved_formset']
162 162
         saved_form = saved_formset.forms[0]
163 163
 
@@ -168,25 +168,22 @@ class SavedBasketTests(TestCase):
168 168
             saved_form.add_prefix('id'): saved_form.initial['id'],
169 169
             saved_form.add_prefix('move_to_basket'): True,
170 170
         }
171
-        response = client.post(reverse('basket:saved'), data=data)
171
+        response = self.post(reverse('basket:saved'), params=data)
172 172
         self.assertEqual(Basket.open.get(id=basket.id).lines.get(
173 173
             product=product).quantity, 2)
174 174
         self.assertRedirects(response, reverse('basket:summary'))
175 175
 
176 176
     def test_moving_from_saved_basket_more_than_stocklevel_raises(self):
177
-        user = User.objects.create_user(username='test', password='pass',
178
-                                        email='test@example.com')
179
-        client = Client()
180
-        client.login(email=user.email, password='pass')
181
-
177
+        self.user = User.objects.create_user(username='test', password='pass',
178
+                                             email='test@example.com')
182 179
         product = create_product(price=D('10.00'), num_in_stock=1)
183
-        basket, created = Basket.open.get_or_create(owner=user)
180
+        basket, created = Basket.open.get_or_create(owner=self.user)
184 181
         add_product(basket, product=product)
185 182
 
186
-        saved_basket, created = Basket.saved.get_or_create(owner=user)
183
+        saved_basket, created = Basket.saved.get_or_create(owner=self.user)
187 184
         add_product(saved_basket, product=product)
188 185
 
189
-        response = client.get(reverse('basket:summary'))
186
+        response = self.get(reverse('basket:summary'))
190 187
         saved_formset = response.context['saved_formset']
191 188
         saved_form = saved_formset.forms[0]
192 189
 
@@ -197,7 +194,7 @@ class SavedBasketTests(TestCase):
197 194
             saved_form.add_prefix('id'): saved_form.initial['id'],
198 195
             saved_form.add_prefix('move_to_basket'): True,
199 196
         }
200
-        response = client.post(reverse('basket:saved'), data=data)
197
+        response = self.post(reverse('basket:saved'), params=data)
201 198
         # we can't add more than stock level into basket
202 199
         self.assertEqual(Basket.open.get(id=basket.id).lines.get(product=product).quantity, 1)
203 200
         self.assertRedirects(response, reverse('basket:summary'))

+ 13
- 14
tests/functional/customer/history_tests.py Wyświetl plik

@@ -1,31 +1,31 @@
1 1
 from django.conf import settings
2 2
 from django.core.urlresolvers import reverse
3
-from django.test import TestCase
4 3
 from django.http import HttpRequest
5 4
 
6 5
 from oscar.test.factories import create_product
7 6
 from oscar.core.compat import get_user_model
8 7
 from oscar.apps.customer import history
9 8
 from oscar.templatetags.history_tags import get_back_button
9
+from oscar.test.testcases import WebTestCase
10 10
 
11 11
 
12 12
 User = get_user_model()
13 13
 COOKIE_NAME = settings.OSCAR_RECENTLY_VIEWED_COOKIE_NAME
14 14
 
15 15
 
16
-class HistoryHelpersTest(TestCase):
16
+class HistoryHelpersTest(WebTestCase):
17 17
 
18 18
     def setUp(self):
19 19
         self.product = create_product()
20 20
 
21 21
     def test_viewing_product_creates_cookie(self):
22
-        response = self.client.get(self.product.get_absolute_url())
23
-        self.assertTrue(COOKIE_NAME in response.cookies)
22
+        response = self.app.get(self.product.get_absolute_url())
23
+        self.assertTrue(COOKIE_NAME in response.client.cookies)
24 24
 
25 25
     def test_id_gets_added_to_cookie(self):
26 26
         response = self.client.get(self.product.get_absolute_url())
27 27
         request = HttpRequest()
28
-        request.COOKIES[COOKIE_NAME] = response.cookies[COOKIE_NAME].value
28
+        request.COOKIES[COOKIE_NAME] = response.client.cookies[COOKIE_NAME].value
29 29
         self.assertTrue(self.product.id in history.extract(request))
30 30
 
31 31
     def test_get_back_button(self):
@@ -43,21 +43,20 @@ class HistoryHelpersTest(TestCase):
43 43
         self.assertEqual(backbutton['title'], 'Back to search results')
44 44
 
45 45
 
46
-class TestAUserWhoLogsOut(TestCase):
46
+class TestAUserWhoLogsOut(WebTestCase):
47 47
     username = 'customer'
48 48
     password = 'cheeseshop'
49 49
     email = 'customer@example.com'
50 50
 
51 51
     def setUp(self):
52 52
         self.product = create_product()
53
-        User.objects.create_user(username=self.username,
54
-                                 email=self.email, password=self.password)
55
-        self.client.login(email=self.email, password=self.password)
53
+        self.user = User.objects.create_user(username=self.username,
54
+                                             email=self.email, password=self.password)
56 55
 
57 56
     def test_has_their_cookies_deleted_on_logout(self):
58
-        response = self.client.get(self.product.get_absolute_url())
59
-        self.assertTrue(COOKIE_NAME in response.cookies)
57
+        response = self.get(self.product.get_absolute_url())
58
+        self.assertTrue(COOKIE_NAME in response.client.cookies)
60 59
 
61
-        response = self.client.get(reverse('customer:logout'))
62
-        self.assertTrue((COOKIE_NAME not in response.cookies)
63
-                        or not self.client.cookies['oscar_recently_viewed_products'].coded_value)
60
+        response = self.get(reverse('customer:logout'))
61
+        self.assertTrue((COOKIE_NAME not in response.client.cookies)
62
+                        or not self.app.cookies.get('oscar_recently_viewed_products', None))

Ładowanie…
Anuluj
Zapisz