feat: 自动隐藏被覆盖的打包历史
This commit is contained in:
@@ -214,3 +214,19 @@ def test_delete_task_keeps_shared_remote_artifact(client, tmp_config):
|
||||
assert resp.status_code == 200
|
||||
assert "仍被其他记录引用" in resp.json()["message"]
|
||||
delete.assert_not_called()
|
||||
|
||||
|
||||
def test_history_hides_superseded_tasks_except_for_admin(client, tmp_config):
|
||||
from datetime import datetime
|
||||
from backend.database import SessionLocal
|
||||
from backend.models import Task
|
||||
db = SessionLocal()
|
||||
db.add_all([
|
||||
Task(id="visible", app_id="1", app_name="测试App", build_type="Ad_Hoc", scheme_id="1", scheme_name="readoor31", status="completed"),
|
||||
Task(id="covered", app_id="1", app_name="测试App", build_type="Ad_Hoc", scheme_id="1", scheme_name="readoor31", status="completed", superseded_at=datetime.utcnow()),
|
||||
])
|
||||
db.commit()
|
||||
db.close()
|
||||
|
||||
assert [task["id"] for task in client.get("/api/tasks").json()] == ["visible"]
|
||||
assert {task["id"] for task in client.get("/api/tasks?include_superseded=true").json()} == {"visible", "covered"}
|
||||
|
||||
@@ -20,6 +20,7 @@ from backend.services.build_service import (
|
||||
run_pod_install,
|
||||
_patch_afnetworking_private_headers,
|
||||
_cleanup_old_builds,
|
||||
_mark_superseded_tasks,
|
||||
_resolve_provisioning_profile,
|
||||
)
|
||||
from backend.services.log_streamer import LogStreamer
|
||||
@@ -418,3 +419,19 @@ def test_cleanup_keeps_recent(tmp_path):
|
||||
|
||||
assert recent_dir.exists()
|
||||
db.close()
|
||||
|
||||
|
||||
def test_mark_superseded_tasks_for_same_oss_url():
|
||||
from backend.database import SessionLocal, init_db
|
||||
from backend.models import Task
|
||||
init_db()
|
||||
db = SessionLocal()
|
||||
old = Task(id="old", app_id="1", app_name="测试App", build_type="Ad_Hoc", scheme_id="1", scheme_name="readoor31", status="completed", oss_url="https://files.example.com/app.html")
|
||||
latest = Task(id="latest", app_id="1", app_name="测试App", build_type="Ad_Hoc", scheme_id="1", scheme_name="readoor31", status="completed", oss_url="https://files.example.com/app.html")
|
||||
db.add_all([old, latest])
|
||||
db.commit()
|
||||
|
||||
_mark_superseded_tasks(db, latest)
|
||||
assert db.get(Task, "old").superseded_at is not None
|
||||
assert db.get(Task, "latest").superseded_at is None
|
||||
db.close()
|
||||
|
||||
Reference in New Issue
Block a user