38 lines
1 KiB
Python
38 lines
1 KiB
Python
"""Tests for LogViewer tail shutdown behavior."""
|
|
|
|
import sys
|
|
import time
|
|
import unittest
|
|
from pathlib import Path
|
|
from unittest.mock import patch
|
|
|
|
from PyQt5.QtWidgets import QApplication
|
|
|
|
from gui.log_viewer import LogViewer
|
|
|
|
APP = QApplication.instance() or QApplication(sys.argv)
|
|
|
|
|
|
class LogViewerStopTailTests(unittest.TestCase):
|
|
def test_stop_tail_without_active_tail_is_instant(self):
|
|
viewer = LogViewer()
|
|
history = Path("log/history/translationHistory_20260703_175433.txt")
|
|
if history.exists():
|
|
viewer._tail_path = history
|
|
|
|
t0 = time.perf_counter()
|
|
viewer.stop_tail(drain=False)
|
|
elapsed = time.perf_counter() - t0
|
|
|
|
self.assertLess(elapsed, 0.2)
|
|
self.assertIsNone(viewer._tail_f)
|
|
|
|
def test_stop_tail_drain_skips_ui_when_not_tailing(self):
|
|
viewer = LogViewer()
|
|
with patch.object(viewer, "append_log_message") as append_mock:
|
|
viewer.stop_tail(drain=True)
|
|
append_mock.assert_not_called()
|
|
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|