Skip to content

Commit 7425702

Browse files
committed
new
1 parent 3e716bd commit 7425702

File tree

1 file changed

+16
-19
lines changed

1 file changed

+16
-19
lines changed

Diff for: tests/test_validation.py

+16-19
Original file line numberDiff line numberDiff line change
@@ -1,38 +1,35 @@
11
import unittest
2-
from unittest.mock import patch
2+
from unittest.mock import patch, MagicMock
33
from flask import Flask, jsonify, request
44
import jwt
5-
from jwt_proxy.api import validate_jwt
65

7-
class TestValidateJWT(unittest.TestCase):
6+
# Assume blueprint and validate_jwt function are defined in your application
7+
# For testing purposes, we'll use a simple Flask app
8+
app = Flask(__name__)
9+
app.config["PATH_WHITELIST"] = ["/allowed_path"]
10+
app.config["UPSTREAM_SERVER"] = "http://upstream-server"
11+
app.config["JWKS_URL"] = "http://jwks-url"
812

9-
def setUp(self):
10-
app = Flask(__name__)
11-
app.config["PATH_WHITELIST"] = ["/allowed_path"]
12-
app.config["UPSTREAM_SERVER"] = "http://upstream-server"
13-
app.config["JWKS_URL"] = "http://jwks-url"
1413

15-
@app.route("/", defaults={"relative_path": ""}, methods=["GET", "POST"])
16-
@app.route("/<path:relative_path>", methods=["GET", "POST"])
17-
def validate_jwt_route(relative_path):
18-
return validate_jwt(relative_path)
14+
class TestValidateJWT(unittest.TestCase):
1915

20-
self.app = app
16+
def setUp(self):
17+
app.testing = True
2118
self.client = app.test_client()
2219

23-
@patch('jwt_proxy.api.proxy_request') # Adjust the import path for proxy_request
20+
@patch('jwt_proxy.api.proxy_request')
2421
def test_path_whitelist(self, mock_proxy_request):
2522
# Mock response as a Flask Response object directly
26-
mock_proxy_request.return_value = jsonify(message="request proxied")
23+
mock_proxy_request.return_value = self.client.get('/allowed_path')
2724
response = self.client.get("/allowed_path")
2825
self.assertEqual(response.status_code, 200)
2926
self.assertEqual(response.json, {"message": "request proxied"})
3027

31-
@patch('jwt_proxy.api.proxy_request') # Adjust the import path for proxy_request
28+
@patch('jwt_proxy.api.proxy_request')
3229
@patch('jwt.PyJWKClient')
3330
@patch('jwt.decode')
3431
def test_valid_token(self, mock_decode, mock_jwks_client, mock_proxy_request):
35-
mock_proxy_request.return_value = jsonify(message="request proxied")
32+
mock_proxy_request.return_value = self.client.get('/some_path')
3633
mock_jwks_client.return_value.get_signing_key_from_jwt.return_value.key = "test-key"
3734
mock_decode.return_value = {"email": "[email protected]"}
3835

@@ -41,15 +38,15 @@ def test_valid_token(self, mock_decode, mock_jwks_client, mock_proxy_request):
4138
self.assertEqual(response.status_code, 200)
4239
self.assertEqual(response.json, {"message": "request proxied"})
4340

44-
@patch('jwt_proxy.api.proxy_request') # Adjust the import path for proxy_request
41+
@patch('jwt_proxy.api.proxy_request')
4542
@patch('jwt.PyJWKClient')
4643
@patch('jwt.decode')
4744
def test_missing_token(self, mock_decode, mock_jwks_client, mock_proxy_request):
4845
response = self.client.get("/some_path")
4946
self.assertEqual(response.status_code, 400)
5047
self.assertEqual(response.json, {"message": "token missing"})
5148

52-
@patch('jwt_proxy.api.proxy_request') # Adjust the import path for proxy_request
49+
@patch('jwt_proxy.api.proxy_request')
5350
@patch('jwt.PyJWKClient')
5451
@patch('jwt.decode')
5552
def test_expired_token(self, mock_decode, mock_jwks_client, mock_proxy_request):

0 commit comments

Comments
 (0)