Reduced repeating of user creation in tests

This commit is contained in:
Marcin-Ramotowski
2025-04-01 20:50:37 +00:00
parent 41d767c02f
commit f36c919ff9
3 changed files with 76 additions and 97 deletions

View File

@ -1,6 +1,8 @@
import pytest
from app import create_app
from models import db
from datetime import datetime
from models import db, User, Task
from werkzeug.security import generate_password_hash
@pytest.fixture
def test_client():
@ -13,3 +15,36 @@ def test_client():
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
@pytest.fixture
def new_task(test_user):
"""Create a new task for testing."""
due_date = datetime.strptime("20-03-2025 12:00", '%d-%m-%Y %H:%M')
task = Task(title="Test Task", description="Task description", due_date=due_date, done=0, user_id=test_user.id)
db.session.add(task)
db.session.commit()
return task