mirror of
https://github.com/zulip/zulip.git
synced 2025-11-02 13:03:29 +00:00
test_events: Loop over stream permission group settings.
This commit is contained in:
committed by
Tim Abbott
parent
173c09e32b
commit
3f5fe756bb
@@ -4536,73 +4536,10 @@ class SubscribeActionTest(BaseAction):
|
||||
do_change_stream_message_retention_days(stream, self.example_user("hamlet"), -1)
|
||||
check_stream_update("events[0]", events[0])
|
||||
|
||||
moderators_group = NamedUserGroup.objects.get(
|
||||
name=SystemGroups.MODERATORS,
|
||||
is_system_group=True,
|
||||
realm=self.user_profile.realm,
|
||||
)
|
||||
with self.verify_action(include_subscribers=include_subscribers, num_events=1) as events:
|
||||
do_change_stream_group_based_setting(
|
||||
stream,
|
||||
"can_remove_subscribers_group",
|
||||
moderators_group,
|
||||
acting_user=iago,
|
||||
for setting_name in Stream.stream_permission_group_settings:
|
||||
self.do_test_subscribe_events_for_stream_permission_group_setting(
|
||||
setting_name, stream, iago, include_subscribers
|
||||
)
|
||||
check_stream_update("events[0]", events[0])
|
||||
self.assertEqual(events[0]["value"], moderators_group.id)
|
||||
|
||||
setting_group = self.create_or_update_anonymous_group_for_setting(
|
||||
[self.user_profile],
|
||||
[moderators_group],
|
||||
)
|
||||
with self.verify_action(include_subscribers=include_subscribers, num_events=1) as events:
|
||||
do_change_stream_group_based_setting(
|
||||
stream,
|
||||
"can_remove_subscribers_group",
|
||||
setting_group,
|
||||
acting_user=iago,
|
||||
)
|
||||
check_stream_update("events[0]", events[0])
|
||||
self.assertEqual(
|
||||
events[0]["value"],
|
||||
AnonymousSettingGroupDict(
|
||||
direct_members=[self.user_profile.id], direct_subgroups=[moderators_group.id]
|
||||
),
|
||||
)
|
||||
|
||||
moderators_group = NamedUserGroup.objects.get(
|
||||
name=SystemGroups.MODERATORS,
|
||||
is_system_group=True,
|
||||
realm=self.user_profile.realm,
|
||||
)
|
||||
with self.verify_action(include_subscribers=include_subscribers, num_events=1) as events:
|
||||
do_change_stream_group_based_setting(
|
||||
stream,
|
||||
"can_administer_channel_group",
|
||||
moderators_group,
|
||||
acting_user=iago,
|
||||
)
|
||||
check_stream_update("events[0]", events[0])
|
||||
self.assertEqual(events[0]["value"], moderators_group.id)
|
||||
|
||||
setting_group = self.create_or_update_anonymous_group_for_setting(
|
||||
[self.user_profile],
|
||||
[moderators_group],
|
||||
)
|
||||
with self.verify_action(include_subscribers=include_subscribers, num_events=1) as events:
|
||||
do_change_stream_group_based_setting(
|
||||
stream,
|
||||
"can_administer_channel_group",
|
||||
setting_group,
|
||||
acting_user=iago,
|
||||
)
|
||||
check_stream_update("events[0]", events[0])
|
||||
self.assertEqual(
|
||||
events[0]["value"],
|
||||
AnonymousSettingGroupDict(
|
||||
direct_members=[self.user_profile.id], direct_subgroups=[moderators_group.id]
|
||||
),
|
||||
)
|
||||
|
||||
# Subscribe to a totally new invite-only stream, so it's just Hamlet on it
|
||||
stream = self.make_stream("private", self.user_profile.realm, invite_only=True)
|
||||
@@ -4715,6 +4652,43 @@ class SubscribeActionTest(BaseAction):
|
||||
)
|
||||
check_subscription_remove("events[0]", events[0])
|
||||
|
||||
def do_test_subscribe_events_for_stream_permission_group_setting(
|
||||
self, setting_name: str, stream: Stream, acting_user: UserProfile, include_subscribers: bool
|
||||
) -> None:
|
||||
moderators_group = NamedUserGroup.objects.get(
|
||||
name=SystemGroups.MODERATORS,
|
||||
is_system_group=True,
|
||||
realm=self.user_profile.realm,
|
||||
)
|
||||
with self.verify_action(include_subscribers=include_subscribers, num_events=1) as events:
|
||||
do_change_stream_group_based_setting(
|
||||
stream,
|
||||
setting_name,
|
||||
moderators_group,
|
||||
acting_user=acting_user,
|
||||
)
|
||||
check_stream_update("events[0]", events[0])
|
||||
self.assertEqual(events[0]["value"], moderators_group.id)
|
||||
|
||||
setting_group = self.create_or_update_anonymous_group_for_setting(
|
||||
[self.user_profile],
|
||||
[moderators_group],
|
||||
)
|
||||
with self.verify_action(include_subscribers=include_subscribers, num_events=1) as events:
|
||||
do_change_stream_group_based_setting(
|
||||
stream,
|
||||
setting_name,
|
||||
setting_group,
|
||||
acting_user=acting_user,
|
||||
)
|
||||
check_stream_update("events[0]", events[0])
|
||||
self.assertEqual(
|
||||
events[0]["value"],
|
||||
AnonymousSettingGroupDict(
|
||||
direct_members=[self.user_profile.id], direct_subgroups=[moderators_group.id]
|
||||
),
|
||||
)
|
||||
|
||||
def test_user_access_events_on_changing_subscriptions(self) -> None:
|
||||
self.set_up_db_for_testing_user_access()
|
||||
self.user_profile = self.example_user("polonius")
|
||||
|
||||
Reference in New Issue
Block a user