56 lines
1.3 KiB
Python
56 lines
1.3 KiB
Python
import pytest
|
|
from app import create_app
|
|
from app.config import TestConfig
|
|
from app.extensions import db
|
|
from app.models.user import User
|
|
from flask_jwt_extended import create_access_token
|
|
|
|
@pytest.fixture
|
|
def app():
|
|
app = create_app(TestConfig)
|
|
with app.app_context():
|
|
db.create_all()
|
|
yield app
|
|
db.session.remove()
|
|
db.drop_all()
|
|
|
|
@pytest.fixture
|
|
def client(app):
|
|
return app.test_client()
|
|
|
|
@pytest.fixture
|
|
def admin_user(app):
|
|
user = User(
|
|
nome="Admin Tester",
|
|
email="admin@test.com",
|
|
role="admin",
|
|
ativo=True
|
|
)
|
|
user.set_password("AdminPass123!")
|
|
db.session.add(user)
|
|
db.session.commit()
|
|
return user
|
|
|
|
@pytest.fixture
|
|
def regular_user(app):
|
|
user = User(
|
|
nome="User Tester",
|
|
email="user@test.com",
|
|
role="user",
|
|
ativo=True
|
|
)
|
|
user.set_password("UserPass123!")
|
|
db.session.add(user)
|
|
db.session.commit()
|
|
return user
|
|
|
|
@pytest.fixture
|
|
def admin_headers(app, admin_user):
|
|
token = create_access_token(identity=admin_user.id, additional_claims={'role': 'admin'})
|
|
return {'Authorization': f'Bearer {token}'}
|
|
|
|
@pytest.fixture
|
|
def user_headers(app, regular_user):
|
|
token = create_access_token(identity=regular_user.id, additional_claims={'role': 'user'})
|
|
return {'Authorization': f'Bearer {token}'}
|