home · contact · privacy
To testing, add insertion of fragments library files.
authorChristian Heller <c.heller@plomlompom.de>
Sat, 8 Nov 2025 05:26:12 +0000 (06:26 +0100)
committerChristian Heller <c.heller@plomlompom.de>
Sat, 8 Nov 2025 05:26:12 +0000 (06:26 +0100)
src/ircplom/testing.py
src/tests/_timeout_retries.test
src/tests/config.test
src/tests/connect_disconnect_legalities.test
src/tests/error_disconnects.test
src/tests/pingpong.test
src/tests/test.test
src/tests/tui_draw.test
src/tests/tui_line_formattings.test

index e44e7c1833e07ffe9191a3b2e52d3a2bb856259c..f48bb4502934c25076cfb6f8f0ca4a115b86fa42 100644 (file)
@@ -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:
index d5cb167ca7fd39269b7f95004d3a06bb07cdb6d4..115ae5f323c25624ea5ceef747385b13046ffa26 100644 (file)
@@ -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
index 91a89c57352efd7bac396b94dbd0e9e9dae35d43..7784cde711757c9116e028e266b42275d5294d3c 100644 (file)
@@ -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
index 366d119eb21c8be6d62807d8fd6acd445abdf2c7..a07fae4a25815da8c16f126f0a30b774f872c1b1 100644 (file)
@@ -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: ???
index 9a1c79bad6bf17eea2bcfae3fe45a92bfef426ad..04e4e50a1f6aaa809504976f2227ca3bb53aa977 100644 (file)
@@ -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]
index b8c297446d323f9d9063c7a9b341a7e2d6f3326f..7b644754751180842a0aea85d04fe0a21af685aa 100644 (file)
@@ -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]
index 2fe35144d5ff89be76d01d19be24401de9a423ef..5efec3f97de0e6108c9e617f29c665f97426043a 100644 (file)
@@ -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
index ce7b38d4f1fdce7aed1b8759f93f0ba968f54967..dc09d93e9ca515498ca6710f7f3851e9a2c04d02 100644 (file)
@@ -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
index 8ba84bafa67bf6fe1a624fd1af30642990deb041..cc4dd0e274d5d596ecb9715cdc8ca789642db2ff 100644 (file)
@@ -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