feat(api): Add lightweight HTTP server for API hooks
This commit is contained in:
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user