home · contact · privacy
Don't write log files while testing.
authorChristian Heller <c.heller@plomlompom.de>
Fri, 26 Sep 2025 03:47:26 +0000 (05:47 +0200)
committerChristian Heller <c.heller@plomlompom.de>
Fri, 26 Sep 2025 03:47:26 +0000 (05:47 +0200)
src/ircplom/client_tui.py
src/ircplom/testing.py

index 25ad250ffe693e5aa3acbe29a4e8c790c9c597d9..01f712798ad4959f909cb339c98dbd3d9e14f0a6 100644 (file)
@@ -40,12 +40,15 @@ class _LogScope(Enum):
 
 class _ClientWindow(Window, ClientQueueMixin):
 
-    def __init__(self, **kwargs) -> None:
+    def __init__(self, path_logs: Optional[Path], **kwargs) -> None:
+        self._path_logs = path_logs
         super().__init__(**kwargs)
         self._title = f'{self.client_id} :DEBUG'
 
     def log(self, msg: str) -> None:
         super().log(msg)
+        if self._path_logs is None:
+            return
         escaped = ''
         for char in self._title:
             if (char.isalpha() and char.isascii()) or char in '-.':
@@ -335,23 +338,29 @@ class _TuiClientDb(_UpdatingNode, SharedClientDbFields):
 
 class _ClientWindowsManager:
 
-    def __init__(self, tui_log: Callable, tui_new_window: Callable) -> None:
+    def __init__(self,
+                 tui_log: Callable,
+                 tui_new_window: Callable,
+                 path_logs: Optional[Path]
+                 ) -> None:
         self._tui_log = tui_log
         self._tui_new_window = tui_new_window
+        self._path_logs = path_logs
         self.db = _TuiClientDb()
         self.windows: list[_ClientWindow] = []
 
     def _new_win(self, scope: _LogScope, chatname: str = '') -> _ClientWindow:
         if scope == _LogScope.CHAT:
             win = self._tui_new_window(
+                    chatname=chatname, path_logs=self._path_logs,
                     win_cls=(_ChannelWindow if self.db.is_chan_name(chatname)
                              else _QueryWindow),
-                    chatname=chatname,
                     get_nick_data=lambda: (self.db.users['me'].nick
                                            if 'me' in self.db.users.keys()
                                            else '?'))
         else:
-            win = self._tui_new_window(win_cls=_ClientWindow)
+            win = self._tui_new_window(win_cls=_ClientWindow,
+                                       path_logs=self._path_logs)
         self.windows += [win]
         return win
 
@@ -497,6 +506,7 @@ class ClientTui(BaseTui):
     'TUI expanded towards Client features.'
     _client_cls = ClientKnowingTui
     _path_config: Optional[Path] = _PATH_CONFIG
+    _path_logs: Optional[Path] = _PATH_LOGS
 
     def __init__(self, **kwargs) -> None:
         super().__init__(**kwargs)
@@ -538,7 +548,8 @@ class ClientTui(BaseTui):
                 tui_log=lambda msg, **kw: self.log(
                     msg, client_id=client_id, **kw),
                 tui_new_window=lambda win_cls, **kw: self._new_window(
-                    win_cls, _q_out=self._q_out, client_id=client_id, **kw))
+                    win_cls, _q_out=self._q_out, client_id=client_id, **kw),
+                path_logs=self._path_logs)
         if getattr(self._client_mngrs[client_id], todo)(**kwargs) is not False:
             self.redraw_affected()
 
index f7c7905ef6c95d10f01ade52ba49de19fe9f583b..a33d203a29edd003c7dbd7b3ca3189b1f81b2dd7 100644 (file)
@@ -93,8 +93,9 @@ class _TestClientKnowingTui(ClientKnowingTui):
 class TestingClientTui(ClientTui):
     'Collects keypresses via TestTerminal and test file, compares log results.'
     _client_cls = _TestClientKnowingTui
-    _path_config = None
     _clients: list[_TestClientKnowingTui]
+    _path_config = None
+    _path_logs: Optional[Path] = None
 
     def __init__(self, **kwargs) -> None:
         super().__init__(**kwargs)