Skip to content

Commit 7206230

Browse files
committed
jw
1 parent c4de40b commit 7206230

File tree

1 file changed

+21
-10
lines changed

1 file changed

+21
-10
lines changed

tests/test_validation.py

Lines changed: 21 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
import unittest
22
from unittest.mock import patch, MagicMock
3-
from flask import Flask, jsonify, request
3+
from flask import Flask
44
import jwt
5-
from jwt_proxy.api import validate_jwt, proxy_request # Adjust the import path based on your actual module structure
5+
from jwt_proxy.api import validate_jwt
66

77
class TestValidateJWT(unittest.TestCase):
88

@@ -17,35 +17,43 @@ def setUp(self):
1717
@self.app.route("/<path:relative_path>", methods=["GET", "POST"])
1818
def validate_jwt_route(relative_path):
1919
return validate_jwt(relative_path)
20-
20+
2121
self.client = self.app.test_client()
2222

2323
@patch('jwt_proxy.api.proxy_request') # Adjust the import path based on where proxy_request is defined
2424
def test_path_whitelist(self, mock_proxy_request):
25-
# Mock response
26-
mock_proxy_request.return_value = jsonify(message="request proxied")
27-
response = self.client.get("/allowed_path")
25+
# Mock response directly without using jsonify
26+
mock_proxy_request.return_value = {"message": "request proxied"}
27+
28+
with self.app.app_context():
29+
response = self.client.get("/allowed_path")
30+
2831
self.assertEqual(response.status_code, 200)
2932
self.assertEqual(response.json, {"message": "request proxied"})
3033

3134
@patch('jwt_proxy.api.proxy_request') # Adjust the import path based on where proxy_request is defined
3235
@patch('jwt.PyJWKClient')
3336
@patch('jwt.decode')
3437
def test_valid_token(self, mock_decode, mock_jwks_client, mock_proxy_request):
35-
mock_proxy_request.return_value = jsonify(message="request proxied")
38+
mock_proxy_request.return_value = {"message": "request proxied"}
3639
mock_jwks_client.return_value.get_signing_key_from_jwt.return_value.key = "test-key"
3740
mock_decode.return_value = {"email": "[email protected]"}
3841

3942
headers = {"Authorization": "Bearer valid-token"}
40-
response = self.client.get("/some_path", headers=headers)
43+
44+
with self.app.app_context():
45+
response = self.client.get("/some_path", headers=headers)
46+
4147
self.assertEqual(response.status_code, 200)
4248
self.assertEqual(response.json, {"message": "request proxied"})
4349

4450
@patch('jwt_proxy.api.proxy_request') # Adjust the import path based on where proxy_request is defined
4551
@patch('jwt.PyJWKClient')
4652
@patch('jwt.decode')
4753
def test_missing_token(self, mock_decode, mock_jwks_client, mock_proxy_request):
48-
response = self.client.get("/some_path")
54+
with self.app.app_context():
55+
response = self.client.get("/some_path")
56+
4957
self.assertEqual(response.status_code, 400)
5058
self.assertEqual(response.json, {"message": "token missing"})
5159

@@ -57,7 +65,10 @@ def test_expired_token(self, mock_decode, mock_jwks_client, mock_proxy_request):
5765
mock_decode.side_effect = jwt.exceptions.ExpiredSignatureError("token expired")
5866

5967
headers = {"Authorization": "Bearer expired-token"}
60-
response = self.client.get("/some_path", headers=headers)
68+
69+
with self.app.app_context():
70+
response = self.client.get("/some_path", headers=headers)
71+
6172
self.assertEqual(response.status_code, 401)
6273
self.assertEqual(response.json, {"message": "token expired"})
6374

0 commit comments

Comments
 (0)