new_lines_t += [line_t]
self._lines_t = new_lines_t
if not replacement_happened:
- for idx_info, line in self._lines_t[:fragments_cutoff + 1]:
- self._line_log_and_parse(idx_info, line)
- self._lines_t = self._lines_t[fragments_cutoff + 1:]
break
+ for idx_info, line in self._lines_t[:fragments_cutoff + 1]:
+ self._line_log_and_parse(idx_info, line)
+ self._lines_t = self._lines_t[fragments_cutoff + 1:]
@staticmethod
def _args_for_cmd(cmd_name: str, remains: str) -> tuple[str, ...]:
+× 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]
+× conn-error
+insert servermsglogged : +0 MSG ERROR :Closing link: ???
+log 1 $ connection_state set to: [Closing link: ???]
+insert isupport-clear
+log 1 $ connection_state set to: []
+log 2 $ DISCONNECTED
+
× connecting
log 1 $ connection_state set to: [connecting]
log 2 $ attempting connection to foo.bar.baz:6697 identifying with …
log 1 > USER baz 0 * :bar
log 1 > NICK :foo
-× disconnecting
-insert isupport-clear
-log 1 $ connection_state set to: []
-log 2 $ DISCONNECTED
-
-× servermsglogged
-servermsg 0 MSG
-log 1 < MSG
-
× ×××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××
# to prepare, initiate connection
# handle /disconnect on being connected
> /disconnect
log 1 > QUIT :ircplom says bye
-insert servermsglogged : +0 MSG ERROR :Closing link: (whatever@whatever.com) [Quit: ircplom says bye]
-log 1 $ connection_state set to: [Closing link: (whatever@whatever.com) [Quit: ircplom says bye]]
-insert disconnecting
+insert conn-error : +0 ??? (whatever@whatever.com) [Quit: ircplom says bye]
# fail to disconnect when already disconnected
> /disconnect
insert connecting
# allow /disconnect outside connection for auto-connect stops
-insert servermsglogged : +0 MSG ERROR :Closing link: (Connection timed out)
-log 1 $ connection_state set to: [Closing link: (Connection timed out)]
-insert disconnecting
+insert conn-error : +0 ??? (Connection timed out)
log 1 $ will retry connecting in 1 seconds
> /disconnect
log 1 $ already disconnected, stopped connecting attempts
+× servermsglogged
+servermsg 0 MSG
+log 1 < MSG
+
× isupport-clear
log 1 $ isupport cleared
log 1 $ isupport:CHANTYPES set to: [#&]
insert isupport-clear
log 1 $ connection_state set to: []
log 2 $ DISCONNECTED
-× reconnect
-> /reconnect
-insert connecting
-× disconnect-with-retry
-insert disconnecting
+× retry
log 1 $ will retry connecting in 1 seconds
-× servermsglogged
-servermsg 0 MSG
-log 1 < MSG
+× conn-error
+insert servermsglogged : +0 MSG ERROR :?
+log 1 $ connection_state set to: [?]
+insert disconnecting
× reconnect-error-logged
-insert reconnect
-insert servermsglogged : +0 MSG ERROR :XXX
-log 1 $ connection_state set to: [XXX]
+> /reconnect
+insert connecting
+insert conn-error : +0 ? XXX
× ×××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××
insert connecting
# test default ERROR handling
-insert servermsglogged : +0 MSG ERROR :abc def ghi
-log 1 $ connection_state set to: [abc def ghi]
-insert disconnecting
+insert conn-error : +0 ? abc def ghi
# test ERROR regex (non-)matches
> /window 1
insert reconnect-error-logged : +0 XXX Closing link: (this should not match)
-insert disconnecting
insert reconnect-error-logged : +0 XXX Closing link: (Connection timed out)
-insert disconnect-with-retry
+insert retry
insert reconnect-error-logged : +0 XXX closing Link: (connection timed out)
-insert disconnect-with-retry
+insert retry
insert reconnect-error-logged : +0 XXX Closing link: (Ping timeout: 240 seconds)
-insert disconnect-with-retry
+insert retry
+× servermsglogged
+servermsg 0 MSG
+log 1 < MSG
+
× isupport-clear
log 1 $ isupport cleared
log 1 $ isupport:CHANTYPES set to: [#&]
log 1 > USER foobarbazquux 0 * :baz
log 1 > NICK :foo
-× servermsglogged
-servermsg 0 MSG
-log 1 < MSG
+× trigger-ping
+servermsg 0 timeout
+log 1 > PING :what's up?
× full-timeout
# ping on timeout, go on as normal if PONG received
log 2 $ DISCONNECTED
log 1 $ will retry connecting in 1 seconds
-× trigger-ping
-servermsg 0 timeout
-log 1 > PING :what's up?
-
× ×××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××
> /connect foo.bar.baz foo:bar baz:foobarbazquux
servermsg 0 MSG
log 1 < MSG
+× servernotice
+insert servermsglogged : +0 MSG :*.?.net NOTICE * :XXX
+log 2 < (server) XXX
+
× isupport-clear
log 1 $ isupport cleared
log 1 $ isupport:CHANTYPES set to: [#&]
× conn_init_1
# expect some NOTICE and PING to process/reply during initiation
-insert servermsglogged : +0 MSG :*.?.net NOTICE * :*** Looking up your ident...
-log 2 < (server) *** Looking up your ident...
-insert servermsglogged : +0 MSG :*.?.net NOTICE * :*** Looking up your hostname...
-log 2 < (server) *** Looking up your hostname...
-insert servermsglogged : +0 MSG :*.?.net NOTICE * :*** Found your hostname (baz.bar.foo)
-log 2 < (server) *** Found your hostname (baz.bar.foo)
+insert servernotice : +0 XXX *** Looking up your ident...
+insert servernotice : +0 XXX *** Looking up your hostname...
+insert servernotice : +0 XXX *** Found your hostname (baz.bar.foo)
insert servermsglogged : +0 MSG PING :?
log 1 > PONG :?
# handle 433
servermsg 0 MSG
log 1 < MSG
+× servermsglogged-and-line-unwrapped
+insert servermsglogged : +0 MSG XXX
+line 21 on_black,bright_white < §§:§§:§§ XXX§§
+
× ×××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××
> /connect foo.bar.baz foo bar:baz
log 1 $ users:me:nick set to: [foo]
# check full line not wrapped
-insert servermsglogged : +0 MSG :foo.bar.baz 001 foo :6789 123456789 123456789 123456789 12345678 0
-line 21 on_black,bright_white < §§:§§:§§ :foo.bar.baz 001 foo :6789 123456789 123456789 123456789 12345678 0§§
+insert servermsglogged-and-line-unwrapped : +0 XXX :foo.bar.baz 001 foo :6789 123456789 123456789 123456789 12345678 0
# check wrap if last space-separated item one char too long
insert servermsglogged : +0 MSG :foo.bar.baz 001 foo :456789 123456789 123456789 123456789 12345678 01
line 21 on_black,bright_white 8
# check wrapping calculation on double-width character (tbh not much of a test since the tester itself counts specifically this char as two, so it's pretty much the same as above testing with a sequence of two ASCII chars; mostly just ensures that the wrapping code relies on Terminal.length_to_term)
-insert servermsglogged : +0 MSG :foo.bar.baz 001 foo :456789 123456789 123456789 123456789 1234567 💓
-line 21 on_black,bright_white < §§:§§:§§ :foo.bar.baz 001 foo :456789 123456789 123456789 123456789 1234567 💓§§
+insert servermsglogged-and-line-unwrapped : +0 XXX :foo.bar.baz 001 foo :456789 123456789 123456789 123456789 1234567 💓
insert servermsglogged : +0 MSG :foo.bar.baz 001 foo :456789 123456789 123456789 123456789 12345678 💓
line 20 on_black,bright_white < §§:§§:§§ :foo.bar.baz 001 foo :456789 123456789 123456789 123456789 12345678§§
line 21 on_black,bright_white 💓§§