feat: add guided exploration and share user-started MCP backend
This commit is contained in:
1 parent
f86db1ced6
commit
ee256ad7ce
144 files changed
+8625
-2075
No files matched your search
@@ -0,0 +1,50 @@
|
||||
from apps.admin_console.services.automation_store import AutomationStore
|
||||
from apps.admin_console.services import exploration_evidence
|
||||
from artemis.config.exploration import ExplorationConfig
|
||||
from artemis.exploration.models import CaseDraft
|
||||
from artemis.exploration.store import ExplorationStore
|
||||
|
||||
|
||||
def test_archive_links_only_current_run_media_and_keeps_case_provenance(tmp_path, monkeypatch):
|
||||
repository = ExplorationStore(AutomationStore(tmp_path / "history.db"))
|
||||
session = repository.create("探索", ExplorationConfig(), {}, "create")
|
||||
first = repository.reserve_run(
|
||||
session["id"], "first", kind="exploration", goal="探索", task_config={}
|
||||
)
|
||||
repository.finish_run(first["id"], {"status": "completed"})
|
||||
second = repository.reserve_run(
|
||||
session["id"], "second", kind="exploration", goal="继续", task_config={}
|
||||
)
|
||||
repository.finish_run(second["id"], {"status": "completed"})
|
||||
repository.save_case(
|
||||
session["id"],
|
||||
CaseDraft(name="用例", goal="已保存提示词"),
|
||||
0,
|
||||
"save",
|
||||
source_run_id=second["id"],
|
||||
)
|
||||
for run in (first, second):
|
||||
repository.database.put(
|
||||
"exploration_demo",
|
||||
run["id"],
|
||||
{
|
||||
"id": run["id"],
|
||||
"exploration_id": session["id"],
|
||||
"run_id": run["id"],
|
||||
"media": [{"kind": "android", "segments": [{"file": "evidence/demo.mp4"}]}],
|
||||
},
|
||||
)
|
||||
monkeypatch.setattr(exploration_evidence, "explorations", repository)
|
||||
monkeypatch.setattr(exploration_evidence, "task_root", lambda _: tmp_path)
|
||||
index = exploration_evidence.exploration_index(
|
||||
second["id"], {(tmp_path / "evidence/demo.mp4").resolve(): "任务录屏/人工示范/demo.mp4"}
|
||||
)
|
||||
old, current = index["demonstrations"]
|
||||
assert old["media"][0]["segments"][0]["file"] is None
|
||||
assert current["media"][0]["segments"][0]["file"] == "任务录屏/人工示范/demo.mp4"
|
||||
assert current["media"][0]["segments"][0]["trace_file"] == "evidence/demo.mp4"
|
||||
assert index["cases"][0]["source_run_id"] == second["id"]
|
||||
assert (
|
||||
repository.database.get("exploration_demo", second["id"])["media"][0]["segments"][0]["file"]
|
||||
== "evidence/demo.mp4"
|
||||
)
|
||||
Reference in new issue
Block a user