refactor: drop the vestigial bot_bottle_root/host_db_path re-exports (#352)
paths is the single home now, so stop re-exporting the path helpers from supervise: remove host_db_path from supervise's imports + __all__ (it was re-export-only) and drop bot_bottle_root from __all__ (kept as an import, still used by audit_dir). supervise_types was already clean. Repoint the last readers (test_supervise imports host_db_path from paths; test_supervise_edge calls paths.bot_bottle_root) and refresh the doc mentions. No supervise.bot_bottle_root / supervise.host_db_path references remain. Behavior-preserving: full unit suite unchanged (only the pre-existing /bin/sleep sidecar-init errors). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WBMWTEtQdJ4W5UrWuLHCck
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
|
||||
Isolates ``HOME`` to a throwaway directory for the entire unit suite so
|
||||
no test ever reads or writes the real ``~/.bot-bottle`` (state, queue,
|
||||
and audit dirs all derive from ``supervise.bot_bottle_root()`` →
|
||||
and audit dirs all derive from ``paths.bot_bottle_root()`` →
|
||||
``Path.home()``). Without this, a test that takes a ``flock`` on the
|
||||
real audit log can **block indefinitely** when a live bottle's supervise
|
||||
sidecar holds that lock — observed as a hung ``coverage run`` at 0% CPU —
|
||||
@@ -49,8 +49,8 @@ def use_bottle_root(root: Path) -> Callable[[], None]:
|
||||
``BOT_BOTTLE_ROOT`` — the supported override. Returns a callable that
|
||||
undoes it (store it as the test's restore hook, or pass to addCleanup).
|
||||
|
||||
Replaces monkey-patching ``supervise.bot_bottle_root``; one env var
|
||||
covers every module and the flat/package copies alike (they all read it)."""
|
||||
Replaces monkey-patching ``paths.bot_bottle_root``; one env var covers
|
||||
every module and the flat/package copies alike (they all read it)."""
|
||||
patcher = mock.patch.dict(os.environ, {"BOT_BOTTLE_ROOT": str(root)})
|
||||
patcher.start()
|
||||
return patcher.stop
|
||||
|
||||
@@ -8,6 +8,7 @@ from datetime import datetime, timezone
|
||||
from pathlib import Path
|
||||
|
||||
from bot_bottle import supervise
|
||||
from bot_bottle.paths import host_db_path
|
||||
from tests.unit import use_bottle_root
|
||||
from bot_bottle.audit_store import AuditStore
|
||||
from bot_bottle.queue_store import QueueStore
|
||||
@@ -21,7 +22,6 @@ from bot_bottle.supervise import (
|
||||
TOOL_EGRESS_ALLOW,
|
||||
TOOL_GITLEAKS_ALLOW,
|
||||
archive_proposal,
|
||||
host_db_path,
|
||||
list_pending_proposals,
|
||||
read_audit_entries,
|
||||
read_proposal,
|
||||
|
||||
@@ -51,7 +51,7 @@ def _proposal(slug: str = "dev", tool: str = TOOL_EGRESS_ALLOW) -> Proposal:
|
||||
|
||||
|
||||
class _FakeHomeMixin:
|
||||
"""Patch supervise.bot_bottle_root to a temp dir for the test."""
|
||||
"""Point bot_bottle_root at a temp dir (via BOT_BOTTLE_ROOT) for the test."""
|
||||
|
||||
def _setup_fake_home(self):
|
||||
self._tmp = tempfile.TemporaryDirectory(prefix="supervise-test.")
|
||||
|
||||
@@ -40,9 +40,8 @@ class TestDieCarriesMessage(unittest.TestCase):
|
||||
|
||||
|
||||
class _FakeHomeMixin:
|
||||
"""Point supervise.bot_bottle_root (what _write_crash_log resolves
|
||||
through) at a temp dir so the crash log doesn't touch the real
|
||||
~/.bot-bottle."""
|
||||
"""Point bot_bottle_root (what _write_crash_log resolves through) at a
|
||||
temp dir so the crash log doesn't touch the real ~/.bot-bottle."""
|
||||
|
||||
def _setup_fake_home(self):
|
||||
self._tmp = tempfile.TemporaryDirectory(prefix="supervise-crash-test.")
|
||||
|
||||
@@ -12,6 +12,7 @@ from unittest.mock import patch
|
||||
|
||||
from bot_bottle import supervise
|
||||
from bot_bottle.audit_store import AuditStore
|
||||
from bot_bottle.paths import bot_bottle_root
|
||||
from bot_bottle.queue_store import QueueStore
|
||||
from bot_bottle.supervise import (
|
||||
AuditEntry,
|
||||
@@ -39,7 +40,7 @@ def _proposal() -> Proposal:
|
||||
|
||||
class TestPathHelpers(unittest.TestCase):
|
||||
def test_bot_bottle_root(self) -> None:
|
||||
self.assertTrue(str(supervise.bot_bottle_root()).endswith(".bot-bottle"))
|
||||
self.assertTrue(str(bot_bottle_root()).endswith(".bot-bottle"))
|
||||
|
||||
|
||||
class TestReadMalformed(unittest.TestCase):
|
||||
|
||||
Reference in New Issue
Block a user