Skip to content

Commit 2eb6998

Browse files
committed
Use new response.get_json() in flask 1.0 for tests
1 parent fb57613 commit 2eb6998

10 files changed

+81
-153
lines changed

tests/test_asymmetric_crypto.py

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import pytest
2-
from flask import Flask, jsonify, json
2+
from flask import Flask, jsonify
33

44
from flask_jwt_extended import JWTManager, jwt_required, create_access_token
55

@@ -57,13 +57,11 @@ def test_asymmetric_cropto(app):
5757
# Insure the symmetric token does not work now
5858
access_headers = {'Authorization': 'Bearer {}'.format(hs256_token)}
5959
response = test_client.get('/protected', headers=access_headers)
60-
json_data = json.loads(response.get_data(as_text=True))
6160
assert response.status_code == 422
62-
assert json_data == {'msg': 'The specified alg value is not allowed'}
61+
assert response.get_json() == {'msg': 'The specified alg value is not allowed'}
6362

6463
# Insure the asymmetric token does work
6564
access_headers = {'Authorization': 'Bearer {}'.format(rs256_token)}
6665
response = test_client.get('/protected', headers=access_headers)
67-
json_data = json.loads(response.get_data(as_text=True))
6866
assert response.status_code == 200
69-
assert json_data == {'foo': 'bar'}
67+
assert response.get_json() == {'foo': 'bar'}

tests/test_blacklist.py

Lines changed: 8 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import pytest
2-
from flask import Flask, jsonify, json
2+
from flask import Flask, jsonify
33

44
from flask_jwt_extended import (
55
JWTManager, jwt_required, create_access_token,
@@ -43,8 +43,7 @@ def check_blacklisted(decrypted_token):
4343

4444
test_client = app.test_client()
4545
response = test_client.get('/protected', headers=make_headers(access_token))
46-
json_data = json.loads(response.get_data(as_text=True))
47-
assert json_data == {'foo': 'bar'}
46+
assert response.get_json() == {'foo': 'bar'}
4847
assert response.status_code == 200
4948

5049

@@ -62,8 +61,7 @@ def check_blacklisted(decrypted_token):
6261

6362
test_client = app.test_client()
6463
response = test_client.get('/protected', headers=make_headers(access_token))
65-
json_data = json.loads(response.get_data(as_text=True))
66-
assert json_data == {'msg': 'Token has been revoked'}
64+
assert response.get_json() == {'msg': 'Token has been revoked'}
6765
assert response.status_code == 401
6866

6967

@@ -81,8 +79,7 @@ def check_blacklisted(decrypted_token):
8179

8280
test_client = app.test_client()
8381
response = test_client.get('/refresh_protected', headers=make_headers(refresh_token))
84-
json_data = json.loads(response.get_data(as_text=True))
85-
assert json_data == {'foo': 'bar'}
82+
assert response.get_json() == {'foo': 'bar'}
8683
assert response.status_code == 200
8784

8885

@@ -100,8 +97,7 @@ def check_blacklisted(decrypted_token):
10097

10198
test_client = app.test_client()
10299
response = test_client.get('/refresh_protected', headers=make_headers(refresh_token))
103-
json_data = json.loads(response.get_data(as_text=True))
104-
assert json_data == {'msg': 'Token has been revoked'}
100+
assert response.get_json() == {'msg': 'Token has been revoked'}
105101
assert response.status_code == 401
106102

107103

@@ -130,14 +126,12 @@ def check_blacklisted(decrypted_token):
130126

131127
app.config['JWT_BLACKLIST_TOKEN_CHECKS'] = ['access']
132128
response = test_client.get('/refresh_protected', headers=make_headers(refresh_token))
133-
json_data = json.loads(response.get_data(as_text=True))
134-
assert json_data == {'foo': 'bar'}
129+
assert response.get_json() == {'foo': 'bar'}
135130
assert response.status_code == 200
136131

137132
app.config['JWT_BLACKLIST_TOKEN_CHECKS'] = ['refresh']
138133
response = test_client.get('/protected', headers=make_headers(access_token))
139-
json_data = json.loads(response.get_data(as_text=True))
140-
assert json_data == {'foo': 'bar'}
134+
assert response.get_json() == {'foo': 'bar'}
141135
assert response.status_code == 200
142136

143137

@@ -157,6 +151,5 @@ def custom_error():
157151

158152
test_client = app.test_client()
159153
response = test_client.get('/protected', headers=make_headers(access_token))
160-
json_data = json.loads(response.get_data(as_text=True))
161-
assert json_data == {'baz': 'foo'}
154+
assert response.get_json() == {'baz': 'foo'}
162155
assert response.status_code == 404

tests/test_claims_verification.py

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import pytest
2-
from flask import Flask, jsonify, json
2+
from flask import Flask, jsonify
33

44
from flask_jwt_extended import (
55
JWTManager, jwt_required, create_access_token, get_jwt_identity,
@@ -49,8 +49,7 @@ def user_load_callback(user_claims):
4949
access_token = create_access_token('username', fresh=True)
5050

5151
response = test_client.get(url, headers=make_headers(access_token))
52-
json_data = json.loads(response.get_data(as_text=True))
53-
assert json_data == {'foo': 'bar'}
52+
assert response.get_json() == {'foo': 'bar'}
5453
assert response.status_code == 200
5554

5655

@@ -67,8 +66,7 @@ def user_load_callback(user_claims):
6766
access_token = create_access_token('username', fresh=True)
6867

6968
response = test_client.get(url, headers=make_headers(access_token))
70-
json_data = json.loads(response.get_data(as_text=True))
71-
assert json_data == {'msg': 'User claims verification failed'}
69+
assert response.get_json() == {'msg': 'User claims verification failed'}
7270
assert response.status_code == 400
7371

7472

@@ -91,8 +89,7 @@ def custom_error():
9189
access_token = create_access_token('username', fresh=True)
9290

9391
response = test_client.get(url, headers=make_headers(access_token))
94-
json_data = json.loads(response.get_data(as_text=True))
95-
assert json_data == {'msg': 'claims failed for username'}
92+
assert response.get_json() == {'msg': 'claims failed for username'}
9693
assert response.status_code == 404
9794

9895

@@ -111,6 +108,5 @@ def user_load_callback(user_claims):
111108
access_token = create_access_token('username', fresh=True)
112109

113110
response = test_client.get(url, headers=make_headers(access_token))
114-
json_data = json.loads(response.get_data(as_text=True))
115-
assert json_data == {'foo': 'bar'}
111+
assert response.get_json() == {'foo': 'bar'}
116112
assert response.status_code == 200

tests/test_cookies.py

Lines changed: 14 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import pytest
2-
from flask import Flask, jsonify, json
2+
from flask import Flask, jsonify
33

44
from flask_jwt_extended import (
55
jwt_required, JWTManager, jwt_refresh_token_required, create_access_token,
@@ -84,23 +84,20 @@ def test_jwt_refresh_required_with_cookies(app, options):
8484

8585
# Test without cookies
8686
response = test_client.get(protected_url)
87-
json_data = json.loads(response.get_data(as_text=True))
8887
assert response.status_code == 401
89-
assert json_data == {'msg': 'Missing cookie "{}"'.format(cookie_name)}
88+
assert response.get_json() == {'msg': 'Missing cookie "{}"'.format(cookie_name)}
9089

9190
# Test after receiving cookies
9291
test_client.get(auth_url)
9392
response = test_client.get(protected_url)
94-
json_data = json.loads(response.get_data(as_text=True))
9593
assert response.status_code == 200
96-
assert json_data == {'foo': 'bar'}
94+
assert response.get_json() == {'foo': 'bar'}
9795

9896
# Test after issuing a 'logout' to delete the cookies
9997
test_client.get('/delete_tokens')
10098
response = test_client.get(protected_url)
101-
json_data = json.loads(response.get_data(as_text=True))
10299
assert response.status_code == 401
103-
assert json_data == {'msg': 'Missing cookie "{}"'.format(cookie_name)}
100+
assert response.get_json() == {'msg': 'Missing cookie "{}"'.format(cookie_name)}
104101

105102

106103
@pytest.mark.parametrize("options", [
@@ -117,16 +114,14 @@ def test_default_access_csrf_protection(app, options):
117114

118115
# Test you cannot post without the additional csrf protection
119116
response = test_client.post(post_url)
120-
json_data = json.loads(response.get_data(as_text=True))
121117
assert response.status_code == 401
122-
assert json_data == {'msg': 'Missing CSRF token in headers'}
118+
assert response.get_json() == {'msg': 'Missing CSRF token in headers'}
123119

124120
# Test that you can post with the csrf double submit value
125121
csrf_headers = {'X-CSRF-TOKEN': csrf_token}
126122
response = test_client.post(post_url, headers=csrf_headers)
127-
json_data = json.loads(response.get_data(as_text=True))
128123
assert response.status_code == 200
129-
assert json_data == {'foo': 'bar'}
124+
assert response.get_json() == {'foo': 'bar'}
130125

131126

132127
@pytest.mark.parametrize("options", [
@@ -141,9 +136,8 @@ def test_non_matching_csrf_token(app, options):
141136
test_client.get(auth_url)
142137
csrf_headers = {'X-CSRF-TOKEN': 'totally_wrong_token'}
143138
response = test_client.post(post_url, headers=csrf_headers)
144-
json_data = json.loads(response.get_data(as_text=True))
145139
assert response.status_code == 401
146-
assert json_data == {'msg': 'CSRF double submit tokens do not match'}
140+
assert response.get_json() == {'msg': 'CSRF double submit tokens do not match'}
147141

148142

149143
@pytest.mark.parametrize("options", [
@@ -158,9 +152,8 @@ def test_csrf_disabled(app, options):
158152
# Get the jwt cookies and csrf double submit tokens
159153
test_client.get(auth_url)
160154
response = test_client.post(post_url)
161-
json_data = json.loads(response.get_data(as_text=True))
162155
assert response.status_code == 200
163-
assert json_data == {'foo': 'bar'}
156+
assert response.get_json() == {'foo': 'bar'}
164157

165158

166159
@pytest.mark.parametrize("options", [
@@ -180,9 +173,8 @@ def test_csrf_with_custom_header_names(app, options):
180173
# Test that you can post with the csrf double submit value
181174
csrf_headers = {'FOO': csrf_token}
182175
response = test_client.post(post_url, headers=csrf_headers)
183-
json_data = json.loads(response.get_data(as_text=True))
184176
assert response.status_code == 200
185-
assert json_data == {'foo': 'bar'}
177+
assert response.get_json() == {'foo': 'bar'}
186178

187179

188180
@pytest.mark.parametrize("options", [
@@ -200,22 +192,19 @@ def test_custom_csrf_methods(app, options):
200192

201193
# Insure we can now do posts without csrf
202194
response = test_client.post(post_url)
203-
json_data = json.loads(response.get_data(as_text=True))
204195
assert response.status_code == 200
205-
assert json_data == {'foo': 'bar'}
196+
assert response.get_json() == {'foo': 'bar'}
206197

207198
# Insure GET requests now fail without csrf
208199
response = test_client.get(get_url)
209-
json_data = json.loads(response.get_data(as_text=True))
210200
assert response.status_code == 401
211-
assert json_data == {'msg': 'Missing CSRF token in headers'}
201+
assert response.get_json() == {'msg': 'Missing CSRF token in headers'}
212202

213203
# Insure GET requests now succeed with csrf
214204
csrf_headers = {'X-CSRF-TOKEN': csrf_token}
215205
response = test_client.get(get_url, headers=csrf_headers)
216-
json_data = json.loads(response.get_data(as_text=True))
217206
assert response.status_code == 200
218-
assert json_data == {'foo': 'bar'}
207+
assert response.get_json() == {'foo': 'bar'}
219208

220209

221210
def test_setting_cookies_wihout_cookies_enabled(app):
@@ -403,14 +392,12 @@ def test_jwt_optional_with_csrf_enabled(app):
403392
# User without a token should be able to reach the endpoint without
404393
# getting a CSRF error
405394
response = test_client.post('/optional_post_protected')
406-
json_data = json.loads(response.get_data(as_text=True))
407395
assert response.status_code == 200
408-
assert json_data == {'foo': 'bar'}
396+
assert response.get_json() == {'foo': 'bar'}
409397

410398
# User with a token should still get a CSRF error if csrf not present
411399
response = test_client.get('/access_token')
412400
csrf_token = _get_cookie_from_response(response, 'csrf_access_token')['csrf_access_token']
413401
response = test_client.post('/optional_post_protected')
414-
json_data = json.loads(response.get_data(as_text=True))
415402
assert response.status_code == 401
416-
assert json_data == {'msg': 'Missing CSRF token in headers'}
403+
assert response.get_json() == {'msg': 'Missing CSRF token in headers'}

tests/test_headers.py

Lines changed: 9 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import pytest
2-
from flask import Flask, jsonify, json
2+
from flask import Flask, jsonify
33

44
from flask_jwt_extended import JWTManager, jwt_required, create_access_token
55
from tests.utils import get_jwt_manager
@@ -29,16 +29,14 @@ def test_custom_header_name(app):
2929
# Insure 'default' headers no longer work
3030
access_headers = {'Authorization': 'Bearer {}'.format(access_token)}
3131
response = test_client.get('/protected', headers=access_headers)
32-
json_data = json.loads(response.get_data(as_text=True))
3332
assert response.status_code == 401
34-
assert json_data == {'msg': 'Missing Foo Header'}
33+
assert response.get_json() == {'msg': 'Missing Foo Header'}
3534

3635
# Insure new headers do work
3736
access_headers = {'Foo': 'Bearer {}'.format(access_token)}
3837
response = test_client.get('/protected', headers=access_headers)
39-
json_data = json.loads(response.get_data(as_text=True))
4038
assert response.status_code == 200
41-
assert json_data == {'foo': 'bar'}
39+
assert response.get_json() == {'foo': 'bar'}
4240

4341

4442
def test_custom_header_type(app):
@@ -51,31 +49,27 @@ def test_custom_header_type(app):
5149
# Insure 'default' headers no longer work
5250
access_headers = {'Authorization': 'Bearer {}'.format(access_token)}
5351
response = test_client.get('/protected', headers=access_headers)
54-
json_data = json.loads(response.get_data(as_text=True))
5552
assert response.status_code == 422
56-
assert json_data == {'msg': "Bad Authorization header. Expected value 'JWT <JWT>'"}
53+
assert response.get_json() == {'msg': "Bad Authorization header. Expected value 'JWT <JWT>'"}
5754

5855
# Insure new headers do work
5956
access_headers = {'Authorization': 'JWT {}'.format(access_token)}
6057
response = test_client.get('/protected', headers=access_headers)
61-
json_data = json.loads(response.get_data(as_text=True))
6258
assert response.status_code == 200
63-
assert json_data == {'foo': 'bar'}
59+
assert response.get_json() == {'foo': 'bar'}
6460

6561
# Insure new headers without a type also work
6662
app.config['JWT_HEADER_TYPE'] = ''
6763
access_headers = {'Authorization': access_token}
6864
response = test_client.get('/protected', headers=access_headers)
69-
json_data = json.loads(response.get_data(as_text=True))
7065
assert response.status_code == 200
71-
assert json_data == {'foo': 'bar'}
66+
assert response.get_json() == {'foo': 'bar'}
7267

7368
# Insure header with too many parts fails
7469
app.config['JWT_HEADER_TYPE'] = ''
7570
access_headers = {'Authorization': 'Bearer {}'.format(access_token)}
7671
response = test_client.get('/protected', headers=access_headers)
77-
json_data = json.loads(response.get_data(as_text=True))
78-
assert json_data == {'msg': "Bad Authorization header. Expected value '<JWT>'"}
72+
assert response.get_json() == {'msg': "Bad Authorization header. Expected value '<JWT>'"}
7973
assert response.status_code == 422
8074

8175

@@ -85,16 +79,14 @@ def test_missing_headers(app):
8579

8680
# Insure 'default' no headers response
8781
response = test_client.get('/protected', headers=None)
88-
json_data = json.loads(response.get_data(as_text=True))
8982
assert response.status_code == 401
90-
assert json_data == {'msg': "Missing Authorization Header"}
83+
assert response.get_json() == {'msg': "Missing Authorization Header"}
9184

9285
# Test custom no headers response
9386
@jwtM.unauthorized_loader
9487
def custom_response(err_str):
9588
return jsonify(foo='bar'), 201
9689

9790
response = test_client.get('/protected', headers=None)
98-
json_data = json.loads(response.get_data(as_text=True))
9991
assert response.status_code == 201
100-
assert json_data == {'foo': "bar"}
92+
assert response.get_json() == {'foo': "bar"}

tests/test_headers_and_cookies.py

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import pytest
2-
from flask import Flask, jsonify, json
2+
from flask import Flask, jsonify
33

44
from flask_jwt_extended import (
55
JWTManager, jwt_required, create_access_token, set_access_cookies
@@ -35,23 +35,20 @@ def test_header_access(app):
3535

3636
access_headers = {'Authorization': 'Bearer {}'.format(access_token)}
3737
response = test_client.get('/protected', headers=access_headers)
38-
json_data = json.loads(response.get_data(as_text=True))
3938
assert response.status_code == 200
40-
assert json_data == {'foo': 'bar'}
39+
assert response.get_json() == {'foo': 'bar'}
4140

4241

4342
def test_cookie_access(app):
4443
test_client = app.test_client()
4544
test_client.get('/cookie_login')
4645
response = test_client.get('/protected')
47-
json_data = json.loads(response.get_data(as_text=True))
4846
assert response.status_code == 200
49-
assert json_data == {'foo': 'bar'}
47+
assert response.get_json() == {'foo': 'bar'}
5048

5149

5250
def test_no_jwt_in_request(app):
5351
test_client = app.test_client()
5452
response = test_client.get('/protected')
55-
json_data = json.loads(response.get_data(as_text=True))
5653
assert response.status_code == 401
57-
assert json_data == {'msg': 'Missing JWT in headers and cookies'}
54+
assert response.get_json() == {'msg': 'Missing JWT in headers and cookies'}

0 commit comments

Comments
 (0)