user_groups: Use UserGroupMembersDict in initial state data.

On the event side, orjson does the work of converting
UserGroupMembersData to json. But when fetching intial state data,
UserGroupMembersData was being returned which is not
json-serializable. This was causing a mismatch in the `verify_action`
workflow of test_events related to stream group settings where
apply_events resulted in a state with `direct_members` and
`direct_subgroups` as part of an ordinary dict, while fetching initial
state data was giving us a UserGroupMembersData class.
This commit uses UserGroupMembersDict where appropriate. It will
still be good to keep around the dataclass class since it has the added
benefit of storing the relevant value when needed.
This commit is contained in:
Shubham Padia
2025-03-11 19:10:37 +00:00
committed by Tim Abbott
parent 37d91d9759
commit b3862c5008
12 changed files with 179 additions and 128 deletions

View File

@@ -141,6 +141,11 @@ class UserTopicDict(TypedDict, total=False):
visibility_policy: int
class UserGroupMembersDict(TypedDict):
direct_members: list[int]
direct_subgroups: list[int]
@dataclass
class UserGroupMembersData:
direct_members: list[int]
@@ -199,11 +204,11 @@ class SubscriptionStreamDict(TypedDict):
"""
audible_notifications: bool | None
can_add_subscribers_group: int | UserGroupMembersData
can_administer_channel_group: int | UserGroupMembersData
can_send_message_group: int | UserGroupMembersData
can_remove_subscribers_group: int | UserGroupMembersData
can_subscribe_group: int | UserGroupMembersData
can_add_subscribers_group: int | UserGroupMembersDict
can_administer_channel_group: int | UserGroupMembersDict
can_send_message_group: int | UserGroupMembersDict
can_remove_subscribers_group: int | UserGroupMembersDict
can_subscribe_group: int | UserGroupMembersDict
color: str
creator_id: int | None
date_created: int
@@ -233,11 +238,11 @@ class SubscriptionStreamDict(TypedDict):
class NeverSubscribedStreamDict(TypedDict):
is_archived: bool
can_add_subscribers_group: int | UserGroupMembersData
can_administer_channel_group: int | UserGroupMembersData
can_send_message_group: int | UserGroupMembersData
can_remove_subscribers_group: int | UserGroupMembersData
can_subscribe_group: int | UserGroupMembersData
can_add_subscribers_group: int | UserGroupMembersDict
can_administer_channel_group: int | UserGroupMembersDict
can_send_message_group: int | UserGroupMembersDict
can_remove_subscribers_group: int | UserGroupMembersDict
can_subscribe_group: int | UserGroupMembersDict
creator_id: int | None
date_created: int
description: str
@@ -263,11 +268,11 @@ class DefaultStreamDict(TypedDict):
"""
is_archived: bool
can_add_subscribers_group: int | UserGroupMembersData
can_administer_channel_group: int | UserGroupMembersData
can_send_message_group: int | UserGroupMembersData
can_remove_subscribers_group: int | UserGroupMembersData
can_subscribe_group: int | UserGroupMembersData
can_add_subscribers_group: int | UserGroupMembersDict
can_administer_channel_group: int | UserGroupMembersDict
can_send_message_group: int | UserGroupMembersDict
can_remove_subscribers_group: int | UserGroupMembersDict
can_subscribe_group: int | UserGroupMembersDict
creator_id: int | None
date_created: int
description: str