"""Migration 0104's data step, DB-lane: a done file from before is dated by when it was asked for (where it already sat); a job not done has no date.""" from alembic import command from alembic.config import Config from sqlalchemy import text from app.db import engine def test_a_done_file_takes_its_request_time(db, make_user): uid = make_user().id cfg = Config("alembic.ini") command.downgrade(cfg, "0103_files_sha256") try: with engine.begin() as conn: def job(status, created): return conn.execute( text( "INSERT INTO download_jobs (user_id, source_kind, source_ref," " profile_snapshot, status, created_at) VALUES (:u, 'url', 'x', '{}', :s," " CAST(:c AS timestamptz)) RETURNING id" ), {"u": uid, "s": status, "c": created}, ).scalar_one() done = job("done", "2026-10-02T10:00:00+00:00") failed = job("error", "2026-10-03T10:00:00+00:00") finally: command.upgrade(cfg, "head") with engine.connect() as conn: rows = dict( conn.execute( text( "SELECT id, to_char(ready_at AT TIME ZONE 'UTC', 'MM-DD HH24') FROM download_jobs" ) ).all() ) assert rows[done] == "10-02 10" assert rows[failed] is None