tests: Move test to check permission to deactivate streams.

This commit moves test to check permission to deactivate
streams to test_channel_permissions.py.
This commit is contained in:
Sahil Batra
2025-06-09 19:08:06 +05:30
committed by Tim Abbott
parent 3f8518f9d1
commit e06c181a95
2 changed files with 8 additions and 42 deletions

View File

@@ -814,7 +814,11 @@ class ChannelAdministerPermissionTest(ZulipTestCase):
) -> None:
old_value = getattr(stream, property_name)
result = self.api_patch(user, f"/api/v1/streams/{stream.id}", info=data)
if property_name == "deactivated" and new_value is True:
# There is a separate endpoint for deactivating streams.
result = self.api_delete(user, f"/api/v1/streams/{stream.id}")
else:
result = self.api_patch(user, f"/api/v1/streams/{stream.id}", info=data)
if allow_fail:
self.assert_json_error(result, error_msg)
@@ -916,6 +920,8 @@ class ChannelAdministerPermissionTest(ZulipTestCase):
self.do_test_updating_channel(stream, "description", "Edited stream description")
self.do_test_updating_channel(stream, "folder_id", channel_folder.id)
self.do_test_updating_channel(stream, "deactivated", True)
do_deactivate_stream(stream, acting_user=None)
self.do_test_updating_channel(stream, "deactivated", False)

View File

@@ -68,7 +68,7 @@ from zerver.lib.subscription_info import (
from zerver.lib.test_classes import ZulipTestCase, get_topic_messages
from zerver.lib.test_helpers import HostRequestMock, cache_tries_captured
from zerver.lib.types import UserGroupMembersData
from zerver.lib.user_groups import UserGroupMembershipDetails, is_user_in_group
from zerver.lib.user_groups import UserGroupMembershipDetails
from zerver.models import (
Attachment,
DefaultStream,
@@ -1113,36 +1113,6 @@ class StreamAdminTest(ZulipTestCase):
for um in UserMessage.objects.filter(message=message):
self.assertTrue(um.flags & UserMessage.flags.read)
def test_deactivate_stream_via_user_group_permissions(self) -> None:
user_profile = self.example_user("hamlet")
self.login_user(user_profile)
stream = self.make_stream("new_stream_1")
self.subscribe(user_profile, stream.name)
user_profile_group = check_add_user_group(
user_profile.realm, "user_profile_group", [user_profile], acting_user=user_profile
)
# Subscribe Cordelia to verify that the archive notification is marked as read for all subscribers.
cordelia = self.example_user("cordelia")
self.subscribe(cordelia, stream.name)
do_change_stream_group_based_setting(
stream,
"can_administer_channel_group",
user_profile_group,
acting_user=user_profile,
)
result = self.client_delete(f"/json/streams/{stream.id}")
self.assert_json_success(result)
self.assertTrue(check_subscriptions_exists(user_profile, stream))
# Assert that a notification message was sent for the archive.
message = self.get_last_message()
expected_content = f"Channel #**{stream.name}** has been archived."
self.assertEqual(message.content, expected_content)
# Assert that the message is read.
for um in UserMessage.objects.filter(message=message):
self.assertTrue(um.flags & UserMessage.flags.read)
def test_deactivate_stream_removes_default_stream(self) -> None:
stream = self.make_stream("new_stream")
do_add_default_stream(stream)
@@ -1371,16 +1341,6 @@ class StreamAdminTest(ZulipTestCase):
result = self.client_delete("/json/streams/999999999")
self.assert_json_error(result, "Invalid channel ID")
def test_deactivate_stream_backend_requires_admin(self) -> None:
user_profile = self.example_user("hamlet")
self.login_user(user_profile)
self.make_stream("new_stream")
stream = self.subscribe(user_profile, "new_stream")
self.assertFalse(is_user_in_group(stream.can_administer_channel_group_id, user_profile))
result = self.client_delete(f"/json/streams/{stream.id}")
self.assert_json_error(result, "You do not have permission to administer this channel.")
def test_private_stream_live_updates(self) -> None:
user_profile = self.example_user("hamlet")
self.login_user(user_profile)