update
This commit is contained in:
200
AzA march 2026/_test_mini_record_window.py
Normal file
200
AzA march 2026/_test_mini_record_window.py
Normal file
@@ -0,0 +1,200 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
"""Tests für AzA Mini-Aufnahmefenster."""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import os
|
||||
import unittest
|
||||
|
||||
|
||||
class TestMiniRecordWindow(unittest.TestCase):
|
||||
def test_minimieren_button_in_basis14(self):
|
||||
path = os.path.join(os.path.dirname(__file__), "basis14.py")
|
||||
with open(path, encoding="utf-8") as f:
|
||||
src = f.read()
|
||||
self.assertIn('"Minimieren"', src)
|
||||
self.assertIn("open_mini_record_mode", src)
|
||||
|
||||
def test_minimieren_button_in_office_shell(self):
|
||||
path = os.path.join(os.path.dirname(__file__), "aza_office_shell_v1.py")
|
||||
with open(path, encoding="utf-8") as f:
|
||||
src = f.read()
|
||||
self.assertIn('"Minimieren"', src)
|
||||
self.assertIn("open_mini_record_mode", src)
|
||||
|
||||
def test_mini_record_module_structure(self):
|
||||
path = os.path.join(os.path.dirname(__file__), "aza_mini_record_window.py")
|
||||
with open(path, encoding="utf-8") as f:
|
||||
src = f.read()
|
||||
self.assertIn("def open_mini_record_window", src)
|
||||
self.assertIn("def close_mini_record_window", src)
|
||||
self.assertIn("def sync_mini_record_window", src)
|
||||
self.assertIn("AzA Mini", src)
|
||||
self.assertIn("Korrigieren", src)
|
||||
self.assertIn("chrome_hdr.pack", src)
|
||||
self.assertIn("_MINI_LOGO_PX", src)
|
||||
self.assertIn("toggle_record", src)
|
||||
self.assertIn("_toggle_record_append", src)
|
||||
self.assertIn("overrideredirect(True)", src)
|
||||
self.assertIn("_bind_window_drag", src)
|
||||
|
||||
def test_mini_logo_size_30_percent_larger(self):
|
||||
import aza_mini_record_window as mr
|
||||
self.assertEqual(mr._MINI_LOGO_PX, int(mr._MAIN_LOGO_PX * 1.3))
|
||||
|
||||
def test_singleton_guard(self):
|
||||
import aza_mini_record_window as mr
|
||||
|
||||
class _FakeWin:
|
||||
def winfo_exists(self):
|
||||
return True
|
||||
|
||||
def lift(self):
|
||||
pass
|
||||
|
||||
class _FakeApp:
|
||||
_mini_record_win = _FakeWin()
|
||||
|
||||
open_called = []
|
||||
|
||||
def _fake_open(app):
|
||||
open_called.append(app)
|
||||
|
||||
orig = mr.open_mini_record_window
|
||||
try:
|
||||
# Direkt: bestehendes Fenster → kein withdraw
|
||||
mr.open_mini_record_window = lambda app: None
|
||||
import aza_mini_record_window
|
||||
aza_mini_record_window.open_mini_record_window(_FakeApp())
|
||||
finally:
|
||||
mr.open_mini_record_window = orig
|
||||
self.assertTrue(hasattr(_FakeApp, "_mini_record_win"))
|
||||
|
||||
def test_filter_doc_type_from_main(self):
|
||||
path = os.path.join(os.path.dirname(__file__), "basis14.py")
|
||||
with open(path, encoding="utf-8") as f:
|
||||
src = f.read()
|
||||
stop_block = src.split("def _stop_and_process_recording", 1)[-1].split("\n def ", 1)[0]
|
||||
self.assertIn("_current_doc_type", stop_block)
|
||||
|
||||
def test_autocopy_mini_window_force(self):
|
||||
path = os.path.join(os.path.dirname(__file__), "basis14.py")
|
||||
with open(path, encoding="utf-8") as f:
|
||||
src = f.read()
|
||||
self.assertIn("is_mini_record_window_open", src)
|
||||
self.assertIn("in Zwischenablage kopiert", src)
|
||||
|
||||
def test_sync_hooks_in_recording(self):
|
||||
path = os.path.join(os.path.dirname(__file__), "basis14.py")
|
||||
with open(path, encoding="utf-8") as f:
|
||||
src = f.read()
|
||||
self.assertIn("_sync_mini_record_ui", src)
|
||||
toggle_block = src.split("def toggle_record", 1)[-1].split("\n def ", 1)[0]
|
||||
self.assertIn("_sync_mini_record_ui", toggle_block)
|
||||
|
||||
def test_doku_prompt_tests_still_importable(self):
|
||||
import _test_doku_prompt_system # noqa: F401
|
||||
|
||||
def test_close_no_confirm_dialog(self):
|
||||
path = os.path.join(os.path.dirname(__file__), "basis14.py")
|
||||
with open(path, encoding="utf-8") as f:
|
||||
src = f.read()
|
||||
close_block = src.split("def _on_close", 1)[-1].split("\n def ", 1)[0]
|
||||
self.assertNotIn("vollstaendig schliessen", close_block)
|
||||
self.assertNotIn("vollständig schließen", close_block)
|
||||
self.assertIn("_close_aza_auxiliary_windows", close_block)
|
||||
self.assertIn("_shutdown_tracked_child_processes", close_block)
|
||||
|
||||
def test_close_shutdown_closes_mini(self):
|
||||
path = os.path.join(os.path.dirname(__file__), "basis14.py")
|
||||
with open(path, encoding="utf-8") as f:
|
||||
src = f.read()
|
||||
aux_block = src.split("def _close_aza_auxiliary_windows", 1)[-1].split("\n def ", 1)[0]
|
||||
self.assertIn("close_mini_record_window", aux_block)
|
||||
self.assertIn("restore_main=False", aux_block)
|
||||
|
||||
def test_mini_window_persistent_topmost(self):
|
||||
path = os.path.join(os.path.dirname(__file__), "aza_mini_record_window.py")
|
||||
with open(path, encoding="utf-8") as f:
|
||||
src = f.read()
|
||||
self.assertIn("_raise_mini_window_topmost", src)
|
||||
self.assertIn('attributes("-topmost", True)', src)
|
||||
self.assertIn("parent=None", src)
|
||||
self.assertIn("bring_to_front=False", src)
|
||||
self.assertIn("_clear_mini_window_topmost", src)
|
||||
|
||||
def test_mini_logo7_both_states(self):
|
||||
import aza_mini_record_window as mr
|
||||
assets = os.path.join(os.path.dirname(__file__), "assets")
|
||||
self.assertTrue(os.path.isfile(os.path.join(assets, "logo7.png")))
|
||||
logo_path = mr._resolve_asset_path(mr._LOGO_CANDIDATES)
|
||||
self.assertIsNotNone(logo_path)
|
||||
self.assertTrue(logo_path.lower().endswith("logo7.png"))
|
||||
path = os.path.join(os.path.dirname(__file__), "aza_mini_record_window.py")
|
||||
with open(path, encoding="utf-8") as f:
|
||||
src = f.read()
|
||||
self.assertNotIn("Logo2.png", src)
|
||||
self.assertNotIn("Logo4", src)
|
||||
self.assertIn("_ensure_mini_logo", src)
|
||||
self.assertIn("_mini_record_photo_idle", src)
|
||||
self.assertIn("_mini_record_photo_active", src)
|
||||
ensure_block = src.split("def _ensure_mini_logo", 1)[-1].split("\ndef ", 1)[0]
|
||||
self.assertIn("_mini_record_photo_active = photo", ensure_block)
|
||||
|
||||
def test_mini_recording_bg_still_changes(self):
|
||||
import aza_mini_record_window as mr
|
||||
self.assertEqual(mr._BG_IDLE, "#effeff")
|
||||
self.assertEqual(mr._BG_ACTIVE, "#ddfaff")
|
||||
path = os.path.join(os.path.dirname(__file__), "aza_mini_record_window.py")
|
||||
with open(path, encoding="utf-8") as f:
|
||||
src = f.read()
|
||||
sync_block = src.split("def sync_mini_record_window", 1)[-1].split("\ndef ", 1)[0]
|
||||
self.assertIn("_apply_mini_bg", sync_block)
|
||||
self.assertIn("Aufnahme läuft", sync_block)
|
||||
|
||||
def test_mini_no_large_content_close_button(self):
|
||||
path = os.path.join(os.path.dirname(__file__), "aza_mini_record_window.py")
|
||||
with open(path, encoding="utf-8") as f:
|
||||
src = f.read()
|
||||
open_block = src.split("def open_mini_record_window", 1)[-1]
|
||||
self.assertNotIn('text="✕", command=lambda: close_mini_record_window', open_block)
|
||||
self.assertIn("logo7.png", src)
|
||||
|
||||
def test_sidebar_close_uses_on_close(self):
|
||||
path = os.path.join(os.path.dirname(__file__), "aza_office_shell_v1.py")
|
||||
with open(path, encoding="utf-8") as f:
|
||||
src = f.read()
|
||||
self.assertIn('command=lambda: _safe_call(app, "_on_close")', src)
|
||||
|
||||
def test_mini_anchor_position_support(self):
|
||||
import aza_mini_record_window as mr
|
||||
from aza_ui_helpers import clamp_window_position
|
||||
|
||||
x, y = clamp_window_position(5000, 5000, 236, 210, screen_w=1920, screen_h=1080)
|
||||
self.assertLessEqual(x, 1920 - 236 - 8)
|
||||
self.assertLessEqual(y, 1080 - 210 - 8)
|
||||
path = os.path.join(os.path.dirname(__file__), "aza_mini_record_window.py")
|
||||
with open(path, encoding="utf-8") as f:
|
||||
src = f.read()
|
||||
self.assertIn("def _place_mini_window", src)
|
||||
self.assertIn("anchor_x", src.split("def open_mini_record_window", 1)[-1])
|
||||
self.assertIn("clamp_window_position", src)
|
||||
|
||||
def test_pin_topmost_reapply(self):
|
||||
path = os.path.join(os.path.dirname(__file__), "basis14.py")
|
||||
with open(path, encoding="utf-8") as f:
|
||||
src = f.read()
|
||||
self.assertIn("def _apply_main_topmost_state", src)
|
||||
self.assertIn("_on_main_focus_in_reapply_pin", src)
|
||||
toggle_block = src.split("def _toggle_main_pin", 1)[-1].split("\n def ", 1)[0]
|
||||
self.assertIn("_apply_main_topmost_state", toggle_block)
|
||||
mini_path = os.path.join(os.path.dirname(__file__), "aza_mini_record_window.py")
|
||||
with open(mini_path, encoding="utf-8") as f:
|
||||
mini_src = f.read()
|
||||
restore_block = mini_src.split("def _restore_main_window", 1)[-1].split("\ndef ", 1)[0]
|
||||
self.assertIn("app._apply_main_topmost_state()", restore_block)
|
||||
self.assertIn('hasattr(app, "_apply_main_topmost_state")', restore_block)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
Reference in New Issue
Block a user