feat(api): Add CLI flag and env var to enable test hooks

This commit is contained in:
2026-02-23 12:06:53 -05:00
parent ddf6f0e1bc
commit 1306163446
2 changed files with 27 additions and 0 deletions

3
gui.py
View File

@@ -14,6 +14,8 @@ import tomli_w
import threading import threading
import time import time
import math import math
import sys
import os
from pathlib import Path from pathlib import Path
from tkinter import filedialog, Tk from tkinter import filedialog, Tk
import aggregate import aggregate
@@ -393,6 +395,7 @@ def _parse_history_entries(history: list[str], roles: list[str] | None = None) -
class App: class App:
def __init__(self): def __init__(self):
self.config = load_config() self.config = load_config()
self.test_hooks_enabled = '--enable-test-hooks' in sys.argv or os.environ.get('SLOP_TEST_HOOKS') == '1'
# ---- global settings from config.toml ---- # ---- global settings from config.toml ----
ai_cfg = self.config.get("ai", {}) ai_cfg = self.config.get("ai", {})

24
tests/test_hooks.py Normal file
View File

@@ -0,0 +1,24 @@
import os
import sys
sys.path.insert(0, os.path.dirname(os.path.dirname(__file__)))
import pytest
from unittest.mock import patch
import gui
def test_hooks_enabled_via_cli():
with patch.object(sys, 'argv', ['gui.py', '--enable-test-hooks']):
app = gui.App()
assert app.test_hooks_enabled is True
def test_hooks_disabled_by_default():
with patch.object(sys, 'argv', ['gui.py']):
if 'SLOP_TEST_HOOKS' in os.environ:
del os.environ['SLOP_TEST_HOOKS']
app = gui.App()
assert getattr(app, 'test_hooks_enabled', False) is False
def test_hooks_enabled_via_env():
with patch.object(sys, 'argv', ['gui.py']):
with patch.dict(os.environ, {'SLOP_TEST_HOOKS': '1'}):
app = gui.App()
assert app.test_hooks_enabled is True