From 910d9ae69f49075a9890f5c791ce6e8c344869e6 Mon Sep 17 00:00:00 2001 From: Christian Heller Date: Sat, 20 Sep 2025 05:17:55 +0200 Subject: [PATCH] Allow tests of multiple server connections. --- ircplom/testing.py | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/ircplom/testing.py b/ircplom/testing.py index eddd5ff..2f3a7bc 100644 --- a/ircplom/testing.py +++ b/ircplom/testing.py @@ -87,10 +87,11 @@ class _TestClientKnowingTui(ClientKnowingTui): class TestingClientTui(ClientTui): 'Collects keypresses via TestTerminal and test file, compares log results.' - _client: _TestClientKnowingTui + _clients: list[_TestClientKnowingTui] def __init__(self, **kwargs) -> None: super().__init__(**kwargs) + self._clients = [] assert isinstance(self._term, TestTerminal) self._q_keypresses = self._term._q_keypresses with open(_PATH_TEST_TXT, 'r', encoding='utf8') as f: @@ -99,9 +100,9 @@ class TestingClientTui(ClientTui): self._play_till_next_log() def _new_client(self, conn_setup: IrcConnSetup) -> _TestClientKnowingTui: - self._client = _TestClientKnowingTui(_q_out=self._q_out, - conn_setup=conn_setup) - return self._client + self._clients += [_TestClientKnowingTui(_q_out=self._q_out, + conn_setup=conn_setup)] + return self._clients[-1] def _log(self, msg: str, **kwargs) -> tuple[tuple[int, ...], str]: win_ids, logged_msg = super()._log(msg, **kwargs) @@ -112,6 +113,8 @@ class TestingClientTui(ClientTui): assert time_str[2] == ':' and time_str[5] == ':' context, expected_msg = self._playbook[self._playbook_idx ].split(maxsplit=1) + if ':' in context: + _, context = context.split(':') expected_win_ids = tuple(int(idx) for idx in context.split(',') if idx) info = (self._playbook_idx, expected_win_ids, win_ids, @@ -140,7 +143,8 @@ class TestingClientTui(ClientTui): self._q_keypresses.put(c) self._q_keypresses.put('KEY_ENTER') continue - if context == '2' and msg[:2] == '< ': - assert isinstance(self._client.conn, _FakeIrcConnection) - self._client.conn.put_server_msg(msg[2:]) + if ':' in context and msg.startswith('< '): + client = self._clients[int(context.split(':')[0])] + assert isinstance(client.conn, _FakeIrcConnection) + client.conn.put_server_msg(msg[2:]) break -- 2.30.2