Files
manual_slop/tests/test_hooks.py
2026-02-24 22:02:06 -05:00

52 lines
1.4 KiB
Python

import os
import sys
import pytest
import requests
import json
from unittest.mock import patch
# Ensure project root is in path
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), "..")))
from api_hook_client import ApiHookClient
import gui_legacy
def test_hooks_enabled_via_cli():
with patch.object(sys, 'argv', ['gui_legacy.py', '--enable-test-hooks']):
app = gui_legacy.App()
assert app.test_hooks_enabled is True
def test_hooks_disabled_by_default():
with patch.object(sys, 'argv', ['gui_legacy.py']):
if 'SLOP_TEST_HOOKS' in os.environ:
del os.environ['SLOP_TEST_HOOKS']
app = gui_legacy.App()
assert getattr(app, 'test_hooks_enabled', False) is False
def test_live_hook_server_responses(live_gui):
"""
Verifies the live hook server (started via fixture) responds correctly to all major endpoints.
"""
client = ApiHookClient()
# Test /status
status = client.get_status()
assert status == {'status': 'ok'}
# Test /api/project
project = client.get_project()
assert 'project' in project
# Test /api/session
session = client.get_session()
assert 'session' in session
# Test /api/performance
perf = client.get_performance()
assert 'performance' in perf
# Test POST /api/gui
gui_data = {"action": "test_action", "value": 42}
resp = client.post_gui(gui_data)
assert resp == {'status': 'queued'}