test: mocked-session rule tests stub the always-on exclusions lookup; tool count 24 (#2880)
CI & Build / Python lint (push) Successful in 3s
CI & Build / Plugin hooks (push) Successful in 7s
CI & Build / integration (push) Successful in 21s
CI & Build / TypeScript typecheck (push) Successful in 34s
CI & Build / Python tests (push) Successful in 1m5s
CI & Build / Build & push image (push) Successful in 29s

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-21 22:04:04 -04:00
co-authored by Claude Fable 5
parent 34734bf84a
commit 227aef3dbf
3 changed files with 19 additions and 1 deletions
+1 -1
View File
@@ -169,7 +169,7 @@ def test_register_attaches_all_sixteen_tools():
mcp = FakeMCP() mcp = FakeMCP()
register(mcp) register(mcp)
assert len(mcp.names) == 22 assert len(mcp.names) == 24 # +exclude/include_always_on_rulebook (milestone 297)
# spot-check a few names # spot-check a few names
assert "list_rulebooks" in mcp.names assert "list_rulebooks" in mcp.names
assert "create_rule" in mcp.names assert "create_rule" in mcp.names
+9
View File
@@ -4,6 +4,15 @@ import pytest
from tests.helpers import fake_note from tests.helpers import fake_note
@pytest.fixture(autouse=True)
def _no_exclusions():
"""build_session_context asks for the bound project's always-on
exclusions (milestone 297); these tests script the rules only."""
with patch("scribe.services.plugin_context.rulebooks_svc.excluded_always_on_rulebooks",
AsyncMock(return_value=[])):
yield
pytestmark = pytest.mark.usefixtures("_no_supersession") pytestmark = pytest.mark.usefixtures("_no_supersession")
+9
View File
@@ -8,6 +8,15 @@ import pytest
from tests.helpers import fake_rule, fake_rulebook, fake_topic, make_mock_session from tests.helpers import fake_rule, fake_rulebook, fake_topic, make_mock_session
@pytest.fixture(autouse=True)
def _no_exclusions():
"""get_applicable_rules asks for the project's always-on exclusions
(milestone 297) through its own session; these mocked-session tests
script the rule queries only, so the exclusions lookup is stubbed empty."""
with patch("scribe.services.rulebooks.excluded_always_on_rulebooks", AsyncMock(return_value=[])):
yield
@pytest.mark.asyncio @pytest.mark.asyncio
async def test_create_rulebook_stores_to_db(): async def test_create_rulebook_stores_to_db():
mock_session = make_mock_session() mock_session = make_mock_session()