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}'}