Import AITURK IDE 1.0.0-beta.1 from Hermes 63279301; preserve MIT license
This commit is contained in:
@@ -0,0 +1,54 @@
|
||||
"""Comment-watermark queries in kanban_db.
|
||||
|
||||
``list_comments_after`` backs the live worker bridge: it returns only comments
|
||||
newer than a cursor so a running worker folds in new operator notes without
|
||||
re-reading the whole thread.
|
||||
"""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import sys
|
||||
from pathlib import Path
|
||||
|
||||
import pytest
|
||||
|
||||
_WORKTREE = Path(__file__).resolve().parents[2]
|
||||
if str(_WORKTREE) not in sys.path:
|
||||
sys.path.insert(0, str(_WORKTREE))
|
||||
|
||||
from hermes_cli import kanban_db as kb
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def fresh_home(tmp_path, monkeypatch):
|
||||
home = tmp_path / "hermes_home"
|
||||
home.mkdir()
|
||||
monkeypatch.setenv("HERMES_HOME", str(home))
|
||||
monkeypatch.setattr(Path, "home", lambda: tmp_path)
|
||||
for var in ("HERMES_KANBAN_DB", "HERMES_KANBAN_WORKSPACES_ROOT", "HERMES_KANBAN_HOME", "HERMES_KANBAN_BOARD"):
|
||||
monkeypatch.delenv(var, raising=False)
|
||||
try:
|
||||
import hermes_constants
|
||||
hermes_constants._cached_default_hermes_root = None # type: ignore[attr-defined]
|
||||
except Exception:
|
||||
pass
|
||||
kb._INITIALIZED_PATHS.clear()
|
||||
return home
|
||||
|
||||
|
||||
def test_list_comments_after_cursor(fresh_home):
|
||||
conn = kb.connect()
|
||||
try:
|
||||
tid = kb.create_task(conn, title="chat")
|
||||
c1 = kb.add_comment(conn, tid, author="alice", body="first")
|
||||
c2 = kb.add_comment(conn, tid, author="bob", body="second")
|
||||
|
||||
assert [c.id for c in kb.list_comments_after(conn, tid, after_id=0)] == [c1, c2]
|
||||
|
||||
newer = kb.list_comments_after(conn, tid, after_id=c1)
|
||||
assert [c.id for c in newer] == [c2]
|
||||
assert newer[0].body == "second"
|
||||
|
||||
assert kb.list_comments_after(conn, tid, after_id=c2) == []
|
||||
finally:
|
||||
conn.close()
|
||||
Reference in New Issue
Block a user