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
 |