forked from Rockachopa/Timmy-time-dashboard
Complete the module consolidation planned in REFACTORING_PLAN.md: Modules merged: - work_orders/ + task_queue/ → swarm/ (subpackages) - self_modify/ + self_tdd/ + upgrades/ → self_coding/ (subpackages) - tools/ → creative/tools/ - chat_bridge/ + telegram_bot/ + shortcuts/ + voice/ → integrations/ (new) - ws_manager/ + notifications/ + events/ + router/ → infrastructure/ (new) - agents/ + agent_core/ + memory/ → timmy/ (subpackages) Updated across codebase: - 66 source files: import statements rewritten - 13 test files: import + patch() target strings rewritten - pyproject.toml: wheel includes (28→14), entry points updated - CLAUDE.md: singleton paths, module map, entry points table - AGENTS.md: file convention updates - REFACTORING_PLAN.md: execution status, success metrics Extras: - Module-level CLAUDE.md added to 6 key packages (Phase 6.2) - Zero test regressions: 1462 tests passing https://claude.ai/code/session_01JNjWfHqusjT3aiN4vvYgUk
44 lines
1.2 KiB
Python
44 lines
1.2 KiB
Python
"""Tests for shortcuts/siri.py — Siri Shortcuts integration."""
|
|
|
|
from integrations.shortcuts.siri import get_setup_guide, SHORTCUT_ACTIONS
|
|
|
|
|
|
def test_setup_guide_has_title():
|
|
guide = get_setup_guide()
|
|
assert "title" in guide
|
|
assert "Timmy" in guide["title"]
|
|
|
|
|
|
def test_setup_guide_has_instructions():
|
|
guide = get_setup_guide()
|
|
assert "instructions" in guide
|
|
assert len(guide["instructions"]) > 0
|
|
|
|
|
|
def test_setup_guide_has_actions():
|
|
guide = get_setup_guide()
|
|
assert "actions" in guide
|
|
assert len(guide["actions"]) > 0
|
|
|
|
|
|
def test_setup_guide_actions_have_required_fields():
|
|
guide = get_setup_guide()
|
|
for action in guide["actions"]:
|
|
assert "name" in action
|
|
assert "endpoint" in action
|
|
assert "method" in action
|
|
assert "description" in action
|
|
|
|
|
|
def test_shortcut_actions_catalog():
|
|
assert len(SHORTCUT_ACTIONS) >= 4
|
|
names = [a.name for a in SHORTCUT_ACTIONS]
|
|
assert "Chat with Timmy" in names
|
|
assert "Check Status" in names
|
|
|
|
|
|
def test_chat_shortcut_is_post():
|
|
chat = next(a for a in SHORTCUT_ACTIONS if a.name == "Chat with Timmy")
|
|
assert chat.method == "POST"
|
|
assert "/shortcuts/chat" in chat.endpoint
|