From eb094ff91902582b0156a253a64a08e6114e8f8a Mon Sep 17 00:00:00 2001 From: Christian Heller Date: Sat, 8 Nov 2025 06:26:12 +0100 Subject: [PATCH] To testing, add insertion of fragments library files. --- src/ircplom/testing.py | 25 +++++++++++++------- src/tests/_timeout_retries.test | 6 +---- src/tests/config.test | 9 +++---- src/tests/connect_disconnect_legalities.test | 10 +------- src/tests/error_disconnects.test | 10 +------- src/tests/pingpong.test | 10 +------- src/tests/test.test | 10 +------- src/tests/tui_draw.test | 11 +++------ src/tests/tui_line_formattings.test | 9 ++----- 9 files changed, 31 insertions(+), 69 deletions(-) diff --git a/src/ircplom/testing.py b/src/ircplom/testing.py index e44e7c1..f48bb45 100644 --- a/src/ircplom/testing.py +++ b/src/ircplom/testing.py @@ -27,6 +27,7 @@ _SCREENLINE_PADDING_SUFFIX = 2 * _SCREENLINE_IGNORE_CHAR _SEP_0 = ' ' _SEP_1 = ',' _SEP_2 = ':' +_TOK_FILE = './' _TOK_IDX_REPEAT = 'r' _SIGNATURE_FOR_CMD = { @@ -194,14 +195,17 @@ class _Playbook: self._verbose = verbose self._print_on_fail: list[str] = [] + def lines_t_from_file(path: Path, prefix='') -> list[tuple[str, str]]: + with path.open('r', encoding='utf8') as f: + return [(f'{prefix}{idx + 1}', line.rstrip('\n')) + for idx, line in enumerate(f.readlines()) + if line.rstrip() + and not line.startswith(_MARK_COMMENT)] + self._idx = 0 - with path.open('r', encoding='utf8') as f: - self._lines_t = [(str(idx + 1), line.rstrip('\n')) - for idx, line in enumerate(f.readlines()) - if line.rstrip() - and not line.startswith(_MARK_COMMENT)] + self._lines_t = lines_t_from_file(path) - def insert(index_str: str, + def insert(idx_str: str, insert_args: tuple[str, ...], fragments: dict[str, tuple[tuple[str, str], ...]], ) -> list[tuple[str, str]]: @@ -247,11 +251,14 @@ class _Playbook: or ','] candidate[1] = _SEP_0.join(to_join) - assert len(insert_args) in (1, 2, 3, 5), (index_str, insert_args) + assert len(insert_args) in (1, 2, 3, 5), (idx_str, insert_args) + if len(insert_args) == 1 and insert_args[0].startswith(_TOK_FILE): + return lines_t_from_file(PATH_TESTS.joinpath(insert_args[0]), + f'{idx_str}{_TOK_FILE}{_SEP_2}') candidates = [ - [_SEP_2.join((index_str, _TOK_IDX_REPEAT, sub_index_str)), + [_SEP_2.join((idx_str, _TOK_IDX_REPEAT, sub_idx_str)), line] - for sub_index_str, line in fragments[insert_args[0]]] + for sub_idx_str, line in fragments[insert_args[0]]] if len(insert_args) >= 2: crop_to_range(insert_args[1]) if len(insert_args) >= 5: diff --git a/src/tests/_timeout_retries.test b/src/tests/_timeout_retries.test index d5cb167..115ae5f 100644 --- a/src/tests/_timeout_retries.test +++ b/src/tests/_timeout_retries.test @@ -1,8 +1,4 @@ -× isupport-clear -log 1 $ isupport cleared -log 1 $ isupport:CHANTYPES set to: [#&] -log 1 $ isupport:PREFIX set to: [(ov)@+] -log 1 $ isupport:USERLEN set to: [10] +insert ./misc.lib × clientwin-init insert isupport-clear : +1 diff --git a/src/tests/config.test b/src/tests/config.test index 91a89c5..7784cde 100644 --- a/src/tests/config.test +++ b/src/tests/config.test @@ -1,9 +1,10 @@ +insert ./misc.lib + +× ×--------------------------------------------------- + log 0 # Found config at tests/config.toml, reading … log 0 # Connecting: {'hostname': 'irc.test0.net', 'nickname': 'foo', 'password': 'bar', 'username': 'baz', 'realname': 'quux', 'port': 1234, 'channels': ['#test', '##testtest']} -log 1 $ isupport cleared -log 1 $ isupport:CHANTYPES set to: [#&] -log 1 $ isupport:PREFIX set to: [(ov)@+] -log 1 $ isupport:USERLEN set to: [10] +insert isupport-clear log 1 $ caps cleared log 1 $ users cleared log 1 $ channels cleared diff --git a/src/tests/connect_disconnect_legalities.test b/src/tests/connect_disconnect_legalities.test index 366d119..a07fae4 100644 --- a/src/tests/connect_disconnect_legalities.test +++ b/src/tests/connect_disconnect_legalities.test @@ -1,12 +1,4 @@ -× servermsglogged -servermsg 0 MSG -log 1 < MSG - -× isupport-clear -log 1 $ isupport cleared -log 1 $ isupport:CHANTYPES set to: [#&] -log 1 $ isupport:PREFIX set to: [(ov)@+] -log 1 $ isupport:USERLEN set to: [10] +insert ./misc.lib × conn-error insert servermsglogged : +0 MSG ERROR :Closing link: ??? diff --git a/src/tests/error_disconnects.test b/src/tests/error_disconnects.test index 9a1c79b..04e4e50 100644 --- a/src/tests/error_disconnects.test +++ b/src/tests/error_disconnects.test @@ -1,12 +1,4 @@ -× servermsglogged -servermsg 0 MSG -log 1 < MSG - -× isupport-clear -log 1 $ isupport cleared -log 1 $ isupport:CHANTYPES set to: [#&] -log 1 $ isupport:PREFIX set to: [(ov)@+] -log 1 $ isupport:USERLEN set to: [10] +insert ./misc.lib × connecting log 1 $ connection_state set to: [connecting] diff --git a/src/tests/pingpong.test b/src/tests/pingpong.test index b8c2974..7b64475 100644 --- a/src/tests/pingpong.test +++ b/src/tests/pingpong.test @@ -1,12 +1,4 @@ -× servermsglogged -servermsg 0 MSG -log 1 < MSG - -× isupport-clear -log 1 $ isupport cleared -log 1 $ isupport:CHANTYPES set to: [#&] -log 1 $ isupport:PREFIX set to: [(ov)@+] -log 1 $ isupport:USERLEN set to: [10] +insert ./misc.lib × conn log 1 $ connection_state set to: [connecting] diff --git a/src/tests/test.test b/src/tests/test.test index 2fe3514..5efec3f 100644 --- a/src/tests/test.test +++ b/src/tests/test.test @@ -1,17 +1,9 @@ -× servermsglogged -servermsg 0 MSG -log 1 < MSG +insert ./misc.lib × servernotice insert servermsglogged : +0 MSG :*.?.net NOTICE * :XXX log 2 < (server) XXX -× isupport-clear -log 1 $ isupport cleared -log 1 $ isupport:CHANTYPES set to: [#&] -log 1 $ isupport:PREFIX set to: [(ov)@+] -log 1 $ isupport:USERLEN set to: [10] - × standard-clear insert isupport-clear : +1 log 1 $ caps cleared diff --git a/src/tests/tui_draw.test b/src/tests/tui_draw.test index ce7b38d..dc09d93 100644 --- a/src/tests/tui_draw.test +++ b/src/tests/tui_draw.test @@ -1,3 +1,5 @@ +insert ./misc.lib + × lines-empty-1 line 0 on_black,bright_white §§ @@ -86,10 +88,6 @@ line 0 on_black,bright_white 20§§-§§-§§ §§ > /? log 0 # invalid prompt command: /? unknown -× servermsglogged -servermsg 0 MSG -log 1 < MSG - × ping-pong insert servermsglogged : +0 MSG PING :? log 1 > PONG :? @@ -366,10 +364,7 @@ insert lines-status-prompt-start : +22 X123456789X123456789X =============([(0:1 # check that triggering creation of new window with new lines adds it to status, with unread-lines count > /connect foo.bar.baz foo bar:baz -log 1 $ isupport cleared -log 1 $ isupport:CHANTYPES set to: [#&] -log 1 $ isupport:PREFIX set to: [(ov)@+] -log 1 $ isupport:USERLEN set to: [10] +insert isupport-clear log 1 $ caps cleared log 1 $ users cleared log 1 $ channels cleared diff --git a/src/tests/tui_line_formattings.test b/src/tests/tui_line_formattings.test index 8ba84ba..cc4dd0e 100644 --- a/src/tests/tui_line_formattings.test +++ b/src/tests/tui_line_formattings.test @@ -1,6 +1,4 @@ -× servermsglogged -servermsg 0 MSG -log 1 < MSG +insert ./misc.lib × servermsglogged-and-line-unwrapped insert servermsglogged : +0 MSG XXX @@ -9,10 +7,7 @@ line 21 on_black,bright_white < §§:§§:§§ XXX§§ × ××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××× > /connect foo.bar.baz foo bar:baz -log 1 $ isupport cleared -log 1 $ isupport:CHANTYPES set to: [#&] -log 1 $ isupport:PREFIX set to: [(ov)@+] -log 1 $ isupport:USERLEN set to: [10] +insert isupport-clear log 1 $ caps cleared log 1 $ users cleared log 1 $ channels cleared -- 2.30.2