Kairo-Jinkendo/backend/tests/test_seeds.py
Lars 88792eeb47
All checks were successful
Deploy Development / deploy (push) Successful in 34s
Test Suite / pytest-backend (push) Successful in 9s
Test Suite / lint-backend (push) Successful in 1s
Test Suite / compose-smoke (push) Has been skipped
Test Suite / k6 /api/health Baseline (push) Successful in 18s
Test Suite / playwright-smoke (push) Successful in 13s
Dev-Seed: lars@stommer.com als Portal-Admin bei jedem Start sicherstellen.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-04 22:25:11 +02:00

55 lines
1.6 KiB
Python

"""Data seed runner tests (require PostgreSQL)."""
from __future__ import annotations
import uuid
import run_seeds
from tests.factories import create_user
def test_seed_runner_finds_seeds():
seeds_dir = run_seeds.seeds_directory()
names = [name for name, _, _ in run_seeds.seed_files(seeds_dir)]
assert "seed_001_cleanup_pytest_artifacts" in names
assert "seed_002_bootstrap_admin" in names
def test_cleanup_seed_removes_example_com_users():
suffix = uuid.uuid4().hex[:8]
user = create_user(email=f"seed-test-{suffix}@example.com")
assert run_seeds.main(["--only", "seed_001_cleanup_pytest_artifacts", "--force"]) == 0
from db import get_connection
conn = get_connection()
try:
with conn.cursor() as cur:
cur.execute("SELECT COUNT(*) FROM users WHERE id = %s", (user["id"],))
assert cur.fetchone()[0] == 0
finally:
conn.close()
def test_cleanup_seed_is_idempotent():
assert run_seeds.main(["--only", "seed_001_cleanup_pytest_artifacts"]) == 0
assert run_seeds.main(["--only", "seed_001_cleanup_pytest_artifacts"]) == 0
def test_dev_admin_seed_ensures_lars():
import os
if os.getenv("ENVIRONMENT", "development").strip().lower() == "production":
return
from auth import get_user_by_email, verify_password
from services.dev_admin import DEV_ADMIN_EMAIL, DEV_ADMIN_PASSWORD
assert run_seeds.main(["--only", "seed_003_ensure_dev_admin"]) == 0
user = get_user_by_email(DEV_ADMIN_EMAIL)
assert user is not None
assert user["portal_role"] == "admin"
assert verify_password(DEV_ADMIN_PASSWORD, user["password_hash"])