_SEP_0 = ' '
_SEP_1 = ','
_SEP_2 = ':'
+_TOK_FILE = './'
_TOK_IDX_REPEAT = 'r'
_SIGNATURE_FOR_CMD = {
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]]:
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:
-× 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
+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
-× 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: ???
-× 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]
-× 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]
-× 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
+insert ./misc.lib
+
× lines-empty-1
line 0 on_black,bright_white §§
> /?
log 0 # invalid prompt command: /? unknown
-× servermsglogged
-servermsg 0 MSG
-log 1 < MSG
-
× ping-pong
insert servermsglogged : +0 MSG PING :?
log 1 > PONG :?
# 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
-× servermsglogged
-servermsg 0 MSG
-log 1 < MSG
+insert ./misc.lib
× servermsglogged-and-line-unwrapped
insert servermsglogged : +0 MSG 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