From f1e6e8960f02a505d29b69cc0eb1f03f931836b3 Mon Sep 17 00:00:00 2001 From: Christian Heller Date: Sat, 8 Nov 2025 02:30:25 +0100 Subject: [PATCH] Some tests refactoring. --- src/ircplom/testing.py | 6 ++-- src/tests/connect_disconnect_legalities.test | 28 ++++++++-------- src/tests/error_disconnects.test | 34 +++++++++----------- src/tests/pingpong.test | 14 ++++---- src/tests/test.test | 13 ++++---- src/tests/tui_line_formattings.test | 10 +++--- 6 files changed, 52 insertions(+), 53 deletions(-) diff --git a/src/ircplom/testing.py b/src/ircplom/testing.py index b21090a..e44e7c1 100644 --- a/src/ircplom/testing.py +++ b/src/ircplom/testing.py @@ -295,10 +295,10 @@ class _Playbook: 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, ...]: diff --git a/src/tests/connect_disconnect_legalities.test b/src/tests/connect_disconnect_legalities.test index 568a78c..366d119 100644 --- a/src/tests/connect_disconnect_legalities.test +++ b/src/tests/connect_disconnect_legalities.test @@ -1,9 +1,20 @@ +× 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 … @@ -17,15 +28,6 @@ log 1 > CAP LS :302 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 @@ -51,9 +53,7 @@ log 1 $ not re-connecting since already connected # 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 @@ -64,9 +64,7 @@ log 1 $ already disconnected and not attempting connect 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 diff --git a/src/tests/error_disconnects.test b/src/tests/error_disconnects.test index f0d794a..9a1c79b 100644 --- a/src/tests/error_disconnects.test +++ b/src/tests/error_disconnects.test @@ -1,3 +1,7 @@ +× servermsglogged +servermsg 0 MSG +log 1 < MSG + × isupport-clear log 1 $ isupport cleared log 1 $ isupport:CHANTYPES set to: [#&] @@ -21,22 +25,19 @@ log 1 > NICK :foo 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 × ××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××× @@ -56,17 +57,14 @@ log 1 $ port set to: [6697] 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 diff --git a/src/tests/pingpong.test b/src/tests/pingpong.test index 8f7c7c5..b8c2974 100644 --- a/src/tests/pingpong.test +++ b/src/tests/pingpong.test @@ -1,3 +1,7 @@ +× servermsglogged +servermsg 0 MSG +log 1 < MSG + × isupport-clear log 1 $ isupport cleared log 1 $ isupport:CHANTYPES set to: [#&] @@ -17,9 +21,9 @@ log 1 > CAP LS :302 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 @@ -37,10 +41,6 @@ log 1 $ connection_state set to: [] 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 diff --git a/src/tests/test.test b/src/tests/test.test index 5be974b..2fe3514 100644 --- a/src/tests/test.test +++ b/src/tests/test.test @@ -2,6 +2,10 @@ 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: [#&] @@ -31,12 +35,9 @@ log 1 > NICK :foo × 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 diff --git a/src/tests/tui_line_formattings.test b/src/tests/tui_line_formattings.test index 27a93db..8ba84ba 100644 --- a/src/tests/tui_line_formattings.test +++ b/src/tests/tui_line_formattings.test @@ -2,6 +2,10 @@ 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 @@ -36,8 +40,7 @@ log 1 $ users:me:nick set to: [?] 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 @@ -66,8 +69,7 @@ line 20 on_black,bright_white :2345678_1_2345678_2_2345678_3_2345678_4_234567 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 💓§§ -- 2.30.2