Untitled
unknown
python
a year ago
2.2 kB
4
Indexable
import pytest from datetime import datetime, timedelta from app import app, db from models import User import jwt @pytest.fixture def client(): app.config['TESTING'] = True with app.test_client() as client: with app.app_context(): # Initialize the database here if needed db.create_all() yield client with app.app_context(): db.drop_all() @pytest.fixture def test_user(): user = User(username='testuser', password='password123') db.session.add(user) db.session.commit() return user @pytest.fixture def valid_token(test_user): return jwt.encode( {'id': test_user.id, 'exp': datetime.utcnow() + timedelta(minutes=5)}, app.config['SECRET_KEY'], algorithm='HS256' ) @pytest.fixture def expired_token(test_user): return jwt.encode( {'id': test_user.id, 'exp': datetime.utcnow() - timedelta(minutes=1)}, app.config['SECRET_KEY'], algorithm='HS256' ) @pytest.fixture def invalid_token(valid_token): return valid_token + "some_invalid_part" def test_no_authorization_header(client): response = client.get('/api/users/1') assert response.status_code == 401 assert b'Authorization header is missing' in response.data def test_missing_token(client): response = client.get('/api/users/1', headers={'Authorization': 'Bearer '}) assert response.status_code == 401 assert b'Token is missing' in response.data def test_expired_token(client, expired_token): response = client.get('/api/users/1', headers={'Authorization': f'Bearer {expired_token}'}) assert response.status_code == 401 assert b'Token expired' in response.data def test_invalid_token(client, invalid_token): response = client.get('/api/users/1', headers={'Authorization': f'Bearer {invalid_token}'}) assert response.status_code == 401 assert b'Invalid token' in response.data def test_valid_token(client, valid_token): response = client.get('/api/users/1', headers={'Authorization': f'Bearer {valid_token}'}) assert response.status_code == 200 assert b'testuser' in response.data
Editor is loading...
Leave a Comment