Files
flowdeck/tests/conftest.py
T
bruno fc8012009a
FlowDeck CI / test (push) Failing after 4s
FlowDeck CI / docker (push) Has been skipped
fix: auth-protected test — create authenticated_client fixture with real session
- conftest.py: fixture that creates a test user + valid session cookie
- test_dashboard + test_dashboard_notion_ui use authenticated_client
- No more redirect to login in tests — proper auth simulation
2026-07-10 16:01:40 -04:00

47 lines
1.4 KiB
Python

"""FlowDeck — Test fixtures."""
import pytest
from fastapi.testclient import TestClient
from app.main import app
from app.db import init_db, get_conn
from app.auth.session import SessionManager
@pytest.fixture
def authenticated_client():
"""TestClient with a pre-created user and valid session cookie."""
import os
import tempfile
db_file = tempfile.NamedTemporaryFile(suffix=".db", delete=False)
db_path = db_file.name
db_file.close()
os.environ["GITEA_URL"] = "https://git.dracodev.net"
os.environ["GITEA_TOKEN"] = "test"
os.environ["DATABASE_URL"] = f"sqlite:///{db_path}"
os.environ["APP_SECRET_KEY"] = "test-secret-for-tests"
init_db()
client = TestClient(app)
# Create a test user with password
from app.password_utils import hash_password
with get_conn() as conn:
conn.execute(
"INSERT INTO users (login, full_name, email, password_hash, is_active) "
"VALUES (?, ?, ?, ?, 1)",
("testuser", "Test User", "[email protected]", hash_password("password")),
)
conn.commit()
# Generate a session for this user
with get_conn() as conn:
user = conn.execute("SELECT * FROM users WHERE login='testuser'").fetchone()
session = SessionManager.create_session(dict(user))
client.cookies["flowdeck_session"] = session
yield client
os.unlink(db_path)