90 lines
3.0 KiB
Python
90 lines
3.0 KiB
Python
import pytest
|
|
import time
|
|
from unittest.mock import patch, MagicMock
|
|
|
|
def test_gui_frosted_background_call():
|
|
# Mock ShaderManager and OpenGL functions
|
|
with patch("src.gui_2.ShaderManager") as mock_sm_class, \
|
|
patch("src.gui_2.gl") as mock_gl, \
|
|
patch("src.gui_2.imgui") as mock_imgui, \
|
|
patch("src.gui_2.theme") as mock_theme:
|
|
|
|
mock_sm = mock_sm_class.return_value
|
|
mock_sm.blur_tex = 2
|
|
mock_theme.get_frosted_glass_enabled.return_value = True
|
|
|
|
mock_imgui.get_io().display_size = MagicMock(x=1920, y=1080)
|
|
|
|
from src.gui_2 import App
|
|
with patch.object(App, '__init__', return_value=None):
|
|
app = App()
|
|
app.shader_manager = mock_sm
|
|
|
|
# Simulate frame
|
|
app._render_frosted_background(pos=MagicMock(x=10, y=10), size=MagicMock(x=100, y=100))
|
|
|
|
# Now it should only call add_image
|
|
assert mock_imgui.get_window_draw_list().add_image.called
|
|
# It no longer calls these
|
|
assert not mock_sm.setup_capture_fbo.called
|
|
assert not mock_sm.render_blur.called
|
|
assert not mock_sm.capture_begin.called
|
|
assert not mock_sm.capture_end.called
|
|
|
|
def test_gui_global_blur_call():
|
|
with patch("src.gui_2.ShaderManager") as mock_sm_class, \
|
|
patch("src.gui_2.imgui") as mock_imgui, \
|
|
patch("src.gui_2.theme") as mock_theme, \
|
|
patch("src.gui_2.bg_shader") as mock_bg:
|
|
|
|
mock_sm = mock_sm_class.return_value
|
|
mock_theme.get_frosted_glass_enabled.return_value = True
|
|
mock_theme.is_nerv_active.return_value = False
|
|
mock_imgui.get_io().display_size = MagicMock(x=1920, y=1080)
|
|
mock_bg.get_bg.return_value = MagicMock(enabled=False)
|
|
|
|
from src.gui_2 import App
|
|
with patch.object(App, '__init__', return_value=None):
|
|
app = App()
|
|
app.shader_manager = mock_sm
|
|
app.shader_uniforms = {
|
|
'frosted_blur_radius': 10.0,
|
|
'frosted_tint_intensity': 0.5,
|
|
'frosted_opacity': 0.8
|
|
}
|
|
app.ai_status = "idle"
|
|
app.ui_crt_filter = False
|
|
app.controller = MagicMock()
|
|
app.perf_profiling_enabled = False
|
|
app.is_viewing_prior_session = False
|
|
app.config = {}
|
|
app.project = {}
|
|
app.show_windows = {}
|
|
app.ui_auto_scroll_comms = False
|
|
app._comms_log_dirty = False
|
|
app._tool_log_dirty = False
|
|
app._pending_comms_lock = MagicMock()
|
|
app._pending_comms = []
|
|
app.ui_focus_agent = None
|
|
app._last_ui_focus_agent = None
|
|
app.perf_monitor = MagicMock()
|
|
app._process_pending_gui_tasks = MagicMock()
|
|
app._process_pending_history_adds = MagicMock()
|
|
app._render_track_proposal_modal = MagicMock()
|
|
app._render_patch_modal = MagicMock()
|
|
app._render_save_preset_modal = MagicMock()
|
|
app._render_preset_manager_window = MagicMock()
|
|
app._render_tool_preset_manager_window = MagicMock()
|
|
app._render_persona_editor_window = MagicMock()
|
|
app._last_autosave = time.time()
|
|
app._autosave_interval = 60
|
|
app._render_custom_title_bar = MagicMock()
|
|
app._render_shader_live_editor = MagicMock()
|
|
|
|
try:
|
|
app._gui_func()
|
|
except Exception:
|
|
pass
|
|
|
|
assert mock_sm.prepare_global_blur.called
|