@@ -152,8 +152,8 @@ def setUp(self):
152
152
self .user = django_models .User .objects .create_user (
153
153
username = 'bill' ,
email = '[email protected] ' ,
password = 'hunter2' )
154
154
155
- @mock .patch ('oauth2client.contrib.django_util.views.pickle ' )
156
- def test_callback_works (self , pickle ):
155
+ @mock .patch ('oauth2client.contrib.django_util.views.jsonpickle ' )
156
+ def test_callback_works (self , jsonpickle_mock ):
157
157
request = self .factory .get ('oauth2/oauth2callback' , data = {
158
158
'state' : json .dumps (self .fake_state ),
159
159
'code' : 123
@@ -169,9 +169,10 @@ def test_callback_works(self, pickle):
169
169
redirect_uri = request .build_absolute_uri ("oauth2/oauth2callback" ))
170
170
171
171
name = 'google_oauth2_flow_{0}' .format (self .CSRF_TOKEN )
172
- self .session [name ] = pickle .dumps (flow )
172
+ pickled_flow = object ()
173
+ self .session [name ] = pickled_flow
173
174
flow .step2_exchange = mock .Mock ()
174
- pickle . loads .return_value = flow
175
+ jsonpickle_mock . decode .return_value = flow
175
176
176
177
request .session = self .session
177
178
request .user = self .user
@@ -180,9 +181,10 @@ def test_callback_works(self, pickle):
180
181
self .assertEqual (
181
182
response .status_code , django .http .HttpResponseRedirect .status_code )
182
183
self .assertEqual (response ['Location' ], self .RETURN_URL )
184
+ jsonpickle_mock .decode .assert_called_once_with (pickled_flow )
183
185
184
- @mock .patch ('oauth2client.contrib.django_util.views.pickle ' )
185
- def test_callback_handles_bad_flow_exchange (self , pickle ):
186
+ @mock .patch ('oauth2client.contrib.django_util.views.jsonpickle ' )
187
+ def test_callback_handles_bad_flow_exchange (self , jsonpickle_mock ):
186
188
request = self .factory .get ('oauth2/oauth2callback' , data = {
187
189
"state" : json .dumps (self .fake_state ),
188
190
"code" : 123
@@ -198,17 +200,19 @@ def test_callback_handles_bad_flow_exchange(self, pickle):
198
200
redirect_uri = request .build_absolute_uri ('oauth2/oauth2callback' ))
199
201
200
202
session_key = 'google_oauth2_flow_{0}' .format (self .CSRF_TOKEN )
201
- self .session [session_key ] = pickle .dumps (flow )
203
+ pickled_flow = object ()
204
+ self .session [session_key ] = pickled_flow
202
205
203
206
def local_throws (code ):
204
207
raise client .FlowExchangeError ('test' )
205
208
206
209
flow .step2_exchange = local_throws
207
- pickle . loads .return_value = flow
210
+ jsonpickle_mock . decode .return_value = flow
208
211
209
212
request .session = self .session
210
213
response = views .oauth2_callback (request )
211
214
self .assertIsInstance (response , http .HttpResponseBadRequest )
215
+ jsonpickle_mock .decode .assert_called_once_with (pickled_flow )
212
216
213
217
def test_error_returns_bad_request (self ):
214
218
request = self .factory .get ('oauth2/oauth2callback' , data = {
0 commit comments