kin: auto-commit after pipeline
This commit is contained in:
parent
e8f702191f
commit
95ba853b49
3 changed files with 489 additions and 1 deletions
|
|
@ -361,6 +361,47 @@ def test_delete_project_nonexistent_does_not_raise(conn):
|
|||
models.delete_project(conn, "nonexistent")
|
||||
|
||||
|
||||
def test_delete_project_with_pipeline_and_handoffs(conn):
|
||||
"""FK bug fix: delete_project не падает при наличии department_handoffs и pipeline_log."""
|
||||
models.create_project(conn, "p1", "P1", "/p1")
|
||||
models.create_task(conn, "P1-001", "p1", "Task", status="in_progress")
|
||||
pipeline = models.create_pipeline(conn, "P1-001", "p1", "hotfix", [{"role": "backend_dev"}])
|
||||
models.create_handoff(conn, pipeline["id"], "P1-001", "engineering")
|
||||
models.write_log(conn, pipeline["id"], "test log message")
|
||||
models.log_audit_event(conn, "dangerous_skip", task_id="P1-001", project_id="p1")
|
||||
|
||||
# Must not raise OperationalError: FOREIGN KEY constraint failed
|
||||
models.delete_project(conn, "p1")
|
||||
|
||||
assert conn.execute("SELECT COUNT(*) FROM department_handoffs").fetchone()[0] == 0
|
||||
assert conn.execute("SELECT COUNT(*) FROM pipeline_log").fetchone()[0] == 0
|
||||
assert conn.execute("SELECT COUNT(*) FROM audit_log WHERE project_id='p1'").fetchone()[0] == 0
|
||||
assert conn.execute("SELECT COUNT(*) FROM pipelines WHERE project_id='p1'").fetchone()[0] == 0
|
||||
assert conn.execute("SELECT COUNT(*) FROM tasks WHERE project_id='p1'").fetchone()[0] == 0
|
||||
|
||||
|
||||
def test_delete_project_cleans_hooks_and_project_links(conn):
|
||||
"""FK fix: delete_project удаляет hooks, hook_logs и project_links."""
|
||||
models.create_project(conn, "p1", "P1", "/p1")
|
||||
models.create_project(conn, "p2", "P2", "/p2")
|
||||
# Create hook and hook_log for p1
|
||||
conn.execute(
|
||||
"INSERT INTO hooks (project_id, name, event, command) VALUES ('p1', 'h', 'pipeline_completed', 'echo ok')"
|
||||
)
|
||||
hook_id = conn.execute("SELECT last_insert_rowid()").fetchone()[0]
|
||||
conn.execute(
|
||||
"INSERT INTO hook_logs (hook_id, project_id, success) VALUES (?, 'p1', 1)", (hook_id,)
|
||||
)
|
||||
conn.commit()
|
||||
models.create_project_link(conn, "p1", "p2", "depends_on")
|
||||
|
||||
models.delete_project(conn, "p1")
|
||||
|
||||
assert conn.execute("SELECT COUNT(*) FROM hooks WHERE project_id='p1'").fetchone()[0] == 0
|
||||
assert conn.execute("SELECT COUNT(*) FROM hook_logs WHERE project_id='p1'").fetchone()[0] == 0
|
||||
assert conn.execute("SELECT COUNT(*) FROM project_links WHERE from_project='p1' OR to_project='p1'").fetchone()[0] == 0
|
||||
|
||||
|
||||
# -- Agent Logs --
|
||||
|
||||
def test_log_agent_run(conn):
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue