from sqlalchemy.orm import Session from app.demo_seed import seed_demo_data from app.models import Comment, ContentItem, Task from tests.helpers import make_test_client def test_seed_demo_data_is_idempotent_and_removes_sensitive_fields(): with make_test_client() as (_client, engine): with Session(engine) as session: task_id = seed_demo_data(session) second_task_id = seed_demo_data(session) task = session.get(Task, task_id) comments = session.query(Comment).all() items = session.query(ContentItem).all() assert second_task_id == task_id assert task is not None assert task.id.startswith("demo-") assert task.status == "success" assert comments assert all(comment.author is None for comment in comments) assert all(comment.source_comment_id is None for comment in comments) assert all(comment.raw_data == "{}" for comment in comments) assert all(item.url is None for item in items) assert all(item.raw_data == "{}" for item in items)