48 lines
1.5 KiB
Python
48 lines
1.5 KiB
Python
import pytest
|
|
from app import create_app
|
|
from flask_jwt_extended import create_access_token
|
|
from models import db, User
|
|
from werkzeug.security import generate_password_hash
|
|
|
|
@pytest.fixture
|
|
def test_client():
|
|
"""Creates a new instance of test app."""
|
|
app = create_app("testing")
|
|
|
|
with app.test_client() as client:
|
|
with app.app_context():
|
|
db.create_all()
|
|
yield client
|
|
db.session.remove()
|
|
db.drop_all()
|
|
|
|
@pytest.fixture
|
|
def test_user():
|
|
"""Create a new user for testing."""
|
|
user = User(username="testuser", email="test@example.com", password=generate_password_hash("testpass"), role="User")
|
|
db.session.add(user)
|
|
db.session.commit()
|
|
return user
|
|
|
|
@pytest.fixture
|
|
def test_user2():
|
|
"""Create a user nr 2 for testing."""
|
|
user2 = User(username="testuser2", email="test2@example.com", password=generate_password_hash("testpass2"), role="User")
|
|
db.session.add(user2)
|
|
db.session.commit()
|
|
return user2
|
|
|
|
@pytest.fixture
|
|
def test_admin():
|
|
"""Create a new admin user for testing."""
|
|
admin = User(username="adminuser", email="admin@example.com", password=generate_password_hash("adminpass"), role="Administrator")
|
|
db.session.add(admin)
|
|
db.session.commit()
|
|
return admin
|
|
|
|
def login_test_user(identity):
|
|
"""Return Bearer auth header for user identified by provided id"""
|
|
access_token = create_access_token(identity=str(identity))
|
|
auth_header = {"Authorization": f"Bearer {access_token}"}
|
|
return auth_header
|