feat(api): Add lightweight HTTP server for API hooks

This commit is contained in:
2026-02-23 12:11:01 -05:00
parent bd7ccf3a07
commit 44c2585f95
3 changed files with 68 additions and 0 deletions

View File

@@ -4,6 +4,11 @@ sys.path.insert(0, os.path.dirname(os.path.dirname(__file__)))
import pytest
from unittest.mock import patch
import gui
import api_hooks
import urllib.request
import json
import threading
import time
def test_hooks_enabled_via_cli():
with patch.object(sys, 'argv', ['gui.py', '--enable-test-hooks']):
@@ -22,3 +27,20 @@ def test_hooks_enabled_via_env():
with patch.dict(os.environ, {'SLOP_TEST_HOOKS': '1'}):
app = gui.App()
assert app.test_hooks_enabled is True
def test_ipc_server_starts_and_responds():
app_mock = gui.App()
app_mock.test_hooks_enabled = True
server = api_hooks.HookServer(app_mock, port=8999)
server.start()
# Wait for server to start
time.sleep(0.5)
try:
req = urllib.request.Request("http://127.0.0.1:8999/status")
with urllib.request.urlopen(req) as response:
assert response.status == 200
data = json.loads(response.read().decode())
assert data.get("status") == "ok"
finally:
server.stop()