From: Christian Heller Date: Tue, 16 Sep 2025 00:55:48 +0000 (+0200) Subject: Add basic channel join testing, use str of incrementing int for user IDs to allow... X-Git-Url: https://plomlompom.com/repos/process_efforts?a=commitdiff_plain;h=68b307dab6f2d6b5b4fce31ee3793719fcda487f;p=ircplom Add basic channel join testing, use str of incrementing int for user IDs to allow predictable ones in testing. --- diff --git a/ircplom/client.py b/ircplom/client.py index 58b48d5..bf9d853 100644 --- a/ircplom/client.py +++ b/ircplom/client.py @@ -7,7 +7,6 @@ from enum import Enum, auto from getpass import getuser from typing import (Any, Callable, Collection, Generic, Iterable, Iterator, Optional, Self, Set, TypeVar) -from uuid import uuid4 # ourselves from ircplom.events import AffectiveEvent, QueueMixin from ircplom.irc_conn import ( @@ -512,6 +511,10 @@ class _UpdatingUser(_UpdatingAttrsMixin, _User): class _UpdatingUsersDict(_UpdatingDict[_UpdatingUser]): + def __init__(self, **kwargs) -> None: + super().__init__(**kwargs) + self._top_id = 0 + def __getitem__(self, key: str) -> _UpdatingUser: user = super().__getitem__(key) user.id_ = key @@ -549,7 +552,8 @@ class _UpdatingUsersDict(_UpdatingDict[_UpdatingUser]): else: assert stored.host == nickuserhost.host elif create_if_none: - id_ = str(uuid4()) + self._top_id += 1 + id_ = str(self._top_id) self[id_].nickuserhost = nickuserhost else: return None diff --git a/test.txt b/test.txt index bf85a8d..ed4e4b3 100644 --- a/test.txt +++ b/test.txt @@ -120,9 +120,8 @@ 2 < :SaslServ!SaslServ@services.bar.baz NOTICE foo :Last login from ~plom@foo.bar.baz on Jan 1 22:00:00 2021 +0000. 3 <<< [SaslServ] Last login from ~plom@foo.bar.baz on Jan 1 22:00:00 2021 +0000. -> /disconnect -0 !# invalid prompt command: /disconnect unknown - +> /join #test +0 !# invalid prompt command: /join unknown > /list 0 # windows available via /window: 0 # 0) :start @@ -131,12 +130,26 @@ 0 # 3) foo.bar.baz SaslServ > /window 1 +> /join #test +2 > JOIN :#test +2 < :foo!~plom@baz.bar.foo JOIN #test +1,2 $ users:me:user set to: [~plom] +2 < :foo.bar.baz 353 foo @ #test :foo @bar +, $ ?!?@? renames ? +, $ ?!?@? renames bar +2 < :foo.bar.baz 366 foo #test :End of /NAMES list. +4 $ residents: bar, foo +2 < :bar!~bar@bar.bar PRIVMSG #test :hi there +1,2 $ users:1:user set to: [~bar] +1,2 $ users:1:host set to: [bar.bar] +4 < [bar] hi there + > /disconnect 1,2 $ requesting disconnect … 2 > QUIT :ircplom says bye 2 < ERROR :Closing link: (plom@baz.bar.foo) [Quit: ircplom says bye] -1,2,3 $ connection_state set to: [Closing link: (plom@baz.bar.foo) [Quit: ircplom says bye]] -1,2,3 $ connection_state set to: [] +1,2,3,4 $ connection_state set to: [Closing link: (plom@baz.bar.foo) [Quit: ircplom says bye]] +1,2,3,4 $ connection_state set to: [] 1,2 $ isupport cleared 1,2 $ sasl_account set to: [] 1,2 $ sasl_auth_state set to: [] @@ -145,12 +158,12 @@ 1,2 $ users cleared > /reconnect -1,2,3 $ connection_state set to: [connecting] +1,2,3,4 $ connection_state set to: [connecting] # except for two positions marked with NB comment, exactly same as on 1st time -1,2,3 $ ?!?@? renames ? +1,2,3,4 $ ?!?@? renames ? 1,2 $ users:me:user set to: [plom] -1,2,3 $ connection_state set to: [connected] +1,2,3,4 $ connection_state set to: [connected] 1,2 $ caps cleared 2 > CAP LS :302 2 > USER plom 0 * :baz @@ -180,7 +193,7 @@ 2 < AUTHENTICATE + 2 > AUTHENTICATE :Zm9vAGZvbwBiYXI= 2 < :foo.bar.baz 900 foo foo!plom@baz.bar.foo foo :You are now logged in as foo -1,2,3 $ ?!plom@? renames foo +1,2,3,4 $ ?!plom@? renames foo 1,2 $ users:me:host set to: [baz.bar.foo] 1,2 $ sasl_account set to: [foo] 2 < :foo.bar.baz 903 foo :SASL authentication successful