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:
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)
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,
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