From 790085832c91f3d8028a5ca7baffc9f5504e2a69 Mon Sep 17 00:00:00 2001 From: shanukun Date: Fri, 2 Apr 2021 21:41:45 +0530 Subject: [PATCH] refactor: Make acting_user a mandatory kwarg for ensure_stream. --- zerver/lib/actions.py | 3 ++- zerver/tests/test_auth_backends.py | 4 +-- zerver/tests/test_email_mirror.py | 6 ++--- zerver/tests/test_subs.py | 40 ++++++++++++++++-------------- zerver/tests/test_user_groups.py | 2 +- 5 files changed, 29 insertions(+), 26 deletions(-) diff --git a/zerver/lib/actions.py b/zerver/lib/actions.py index 25f9897bda..43d806bdfd 100644 --- a/zerver/lib/actions.py +++ b/zerver/lib/actions.py @@ -2258,7 +2258,8 @@ def ensure_stream( stream_name: str, invite_only: bool = False, stream_description: str = "", - acting_user: Optional[UserProfile] = None, + *, + acting_user: Optional[UserProfile], ) -> Stream: return create_stream_if_needed( realm, diff --git a/zerver/tests/test_auth_backends.py b/zerver/tests/test_auth_backends.py index f66ddfbe8e..96169728c1 100644 --- a/zerver/tests/test_auth_backends.py +++ b/zerver/tests/test_auth_backends.py @@ -1460,7 +1460,7 @@ class SocialAuthBase(DesktopFlowTestingLib, ZulipTestCase): stream_names = ["new_stream_1", "new_stream_2"] streams = [] for stream_name in set(stream_names): - stream = ensure_stream(realm, stream_name) + stream = ensure_stream(realm, stream_name, acting_user=None) streams.append(stream) referrer = self.example_user("hamlet") @@ -3628,7 +3628,7 @@ class GoogleAuthBackendTest(SocialAuthBase): stream_names = ["new_stream_1", "new_stream_2"] streams = [] for stream_name in set(stream_names): - stream = ensure_stream(realm, stream_name) + stream = ensure_stream(realm, stream_name, acting_user=None) streams.append(stream) # Without the invite link, we can't create an account due to invite_required diff --git a/zerver/tests/test_email_mirror.py b/zerver/tests/test_email_mirror.py index edfa922c79..32f4c6361f 100644 --- a/zerver/tests/test_email_mirror.py +++ b/zerver/tests/test_email_mirror.py @@ -75,7 +75,7 @@ class TestEncodeDecode(ZulipTestCase): def test_encode_decode(self) -> None: realm = get_realm("zulip") stream_name = "dev. help" - stream = ensure_stream(realm, stream_name) + stream = ensure_stream(realm, stream_name, acting_user=None) email_address = encode_email_address(stream) self.assertEqual(email_address, f"dev-help.{stream.email_token}@testserver") @@ -134,7 +134,7 @@ class TestEncodeDecode(ZulipTestCase): def test_encode_decode_nonlatin_alphabet_stream_name(self) -> None: realm = get_realm("zulip") stream_name = "Тестовы some ascii letters" - stream = ensure_stream(realm, stream_name) + stream = ensure_stream(realm, stream_name, acting_user=None) email_address = encode_email_address(stream) msg_string = get_email_gateway_message_string_from_address(email_address) @@ -149,7 +149,7 @@ class TestEncodeDecode(ZulipTestCase): self.assertEqual(token, stream.email_token) asciiable_stream_name = "ąężć" - stream = ensure_stream(realm, asciiable_stream_name) + stream = ensure_stream(realm, asciiable_stream_name, acting_user=None) email_address = encode_email_address(stream) self.assertTrue(email_address.startswith("aezc.")) diff --git a/zerver/tests/test_subs.py b/zerver/tests/test_subs.py index 5769f917a8..c7eea6c646 100644 --- a/zerver/tests/test_subs.py +++ b/zerver/tests/test_subs.py @@ -123,7 +123,7 @@ class TestCreateStreams(ZulipTestCase): # Test stream creation events. events: List[Mapping[str, Any]] = [] with tornado_redirected_to_list(events): - ensure_stream(realm, "Public stream", invite_only=False) + ensure_stream(realm, "Public stream", invite_only=False, acting_user=None) self.assert_length(events, 1) self.assertEqual(events[0]["event"]["type"], "stream") @@ -134,7 +134,7 @@ class TestCreateStreams(ZulipTestCase): events = [] with tornado_redirected_to_list(events): - ensure_stream(realm, "Private stream", invite_only=True) + ensure_stream(realm, "Private stream", invite_only=True, acting_user=None) self.assert_length(events, 1) self.assertEqual(events[0]["event"]["type"], "stream") @@ -272,7 +272,9 @@ class TestCreateStreams(ZulipTestCase): aaron = self.example_user("aaron") # Establish a stream for notifications. - announce_stream = ensure_stream(realm, "announce", False, "announcements here.") + announce_stream = ensure_stream( + realm, "announce", False, "announcements here.", acting_user=None + ) realm.notifications_stream_id = announce_stream.id realm.save(update_fields=["notifications_stream_id"]) @@ -562,11 +564,11 @@ class StreamAdminTest(ZulipTestCase): realm = get_realm("zulip") streams_to_keep = [] for stream_name in ["stream1", "stream2"]: - stream = ensure_stream(realm, stream_name) + stream = ensure_stream(realm, stream_name, acting_user=None) streams_to_keep.append(stream) streams_to_remove = [] - stream = ensure_stream(realm, "stream3") + stream = ensure_stream(realm, "stream3", acting_user=None) streams_to_remove.append(stream) all_streams = streams_to_keep + streams_to_remove @@ -1332,7 +1334,7 @@ class StreamAdminTest(ZulipTestCase): # Simulate that a stream by the same name has already been # deactivated, just to exercise our renaming logic: # Since we do not know the id of these simulated stream we prepend the name with a random hashed_stream_id - ensure_stream(realm, "DB32B77" + "!DEACTIVATED:" + active_name) + ensure_stream(realm, "DB32B77" + "!DEACTIVATED:" + active_name, acting_user=None) events: List[Mapping[str, Any]] = [] with tornado_redirected_to_list(events): @@ -1876,7 +1878,7 @@ class DefaultStreamTest(ZulipTestCase): def test_add_and_remove_default_stream(self) -> None: realm = get_realm("zulip") - stream = ensure_stream(realm, "Added Stream") + stream = ensure_stream(realm, "Added Stream", acting_user=None) orig_stream_names = self.get_default_stream_names(realm) do_add_default_stream(stream) new_stream_names = self.get_default_stream_names(realm) @@ -1899,7 +1901,7 @@ class DefaultStreamTest(ZulipTestCase): self.login_user(user_profile) stream_name = "stream ADDED via api" - stream = ensure_stream(user_profile.realm, stream_name) + stream = ensure_stream(user_profile.realm, stream_name, acting_user=None) result = self.client_post("/json/default_streams", dict(stream_id=stream.id)) self.assert_json_success(result) self.assertTrue(stream_name in self.get_default_stream_names(user_profile.realm)) @@ -1967,7 +1969,7 @@ class DefaultStreamGroupTest(ZulipTestCase): streams = [] for stream_name in ["stream1", "stream2", "stream3"]: - stream = ensure_stream(realm, stream_name) + stream = ensure_stream(realm, stream_name, acting_user=None) streams.append(stream) def get_streams(group: DefaultStreamGroup) -> List[Stream]: @@ -1987,7 +1989,7 @@ class DefaultStreamGroupTest(ZulipTestCase): new_stream_names = ["stream4", "stream5"] new_streams = [] for new_stream_name in new_stream_names: - new_stream = ensure_stream(realm, new_stream_name) + new_stream = ensure_stream(realm, new_stream_name, acting_user=None) new_streams.append(new_stream) streams.append(new_stream) @@ -2049,7 +2051,7 @@ class DefaultStreamGroupTest(ZulipTestCase): self.assert_length(default_stream_groups, 0) for stream_name in stream_names: - stream = ensure_stream(realm, stream_name) + stream = ensure_stream(realm, stream_name, acting_user=None) streams.append(stream) result = self.client_post( @@ -2083,7 +2085,7 @@ class DefaultStreamGroupTest(ZulipTestCase): new_stream_names = ["stream4", "stream5"] new_streams = [] for new_stream_name in new_stream_names: - new_stream = ensure_stream(realm, new_stream_name) + new_stream = ensure_stream(realm, new_stream_name, acting_user=None) new_streams.append(new_stream) streams.append(new_stream) @@ -2242,7 +2244,7 @@ class DefaultStreamGroupTest(ZulipTestCase): streams = [] for stream_name in stream_names: - stream = ensure_stream(realm, stream_name) + stream = ensure_stream(realm, stream_name, acting_user=None) streams.append(stream) result = self.client_post( @@ -3634,7 +3636,7 @@ class SubscriptionAPITest(ZulipTestCase): # Create a private stream with Hamlet subscribed stream_name = "private" - stream = ensure_stream(realm, stream_name, invite_only=True) + stream = ensure_stream(realm, stream_name, invite_only=True, acting_user=None) existing_user_profile = self.example_user("hamlet") bulk_add_subscriptions(realm, [stream], [existing_user_profile]) @@ -3673,7 +3675,7 @@ class SubscriptionAPITest(ZulipTestCase): # Do not send stream creation event to realm admin users # even if realm admin is subscribed to stream cause realm admin already get # private stream creation event on stream creation. - new_stream = ensure_stream(realm, "private stream", invite_only=True) + new_stream = ensure_stream(realm, "private stream", invite_only=True, acting_user=None) events = [] with tornado_redirected_to_list(events): bulk_add_subscriptions(realm, [new_stream], [self.example_user("iago")]) @@ -4310,9 +4312,9 @@ class SubscriptionAPITest(ZulipTestCase): realm = get_realm("zulip") user = self.example_user("iago") random_user = self.example_user("hamlet") - stream1 = ensure_stream(realm, "stream1", invite_only=False) - stream2 = ensure_stream(realm, "stream2", invite_only=False) - private = ensure_stream(realm, "private_stream", invite_only=True) + stream1 = ensure_stream(realm, "stream1", invite_only=False, acting_user=None) + stream2 = ensure_stream(realm, "stream2", invite_only=False, acting_user=None) + private = ensure_stream(realm, "private_stream", invite_only=True, acting_user=None) self.subscribe(user, "stream1") self.subscribe(user, "stream2") @@ -5261,7 +5263,7 @@ class AccessStreamTest(ZulipTestCase): # Nobody can access a public stream in another realm mit_realm = get_realm("zephyr") - mit_stream = ensure_stream(mit_realm, "mit_stream", invite_only=False) + mit_stream = ensure_stream(mit_realm, "mit_stream", invite_only=False, acting_user=None) sipbtest = self.mit_user("sipbtest") with self.assertRaisesRegex(JsonableError, "Invalid stream id"): access_stream_by_id(hamlet, mit_stream.id) diff --git a/zerver/tests/test_user_groups.py b/zerver/tests/test_user_groups.py index cf2cc6e43a..801e73315c 100644 --- a/zerver/tests/test_user_groups.py +++ b/zerver/tests/test_user_groups.py @@ -401,7 +401,7 @@ class UserGroupAPITestCase(ZulipTestCase): content_with_group_mention = "hey @*support* can you help us with this?" - ensure_stream(realm, stream_name) + ensure_stream(realm, stream_name, acting_user=None) all_users = {cordelia, hamlet, othello, zoe} support_team = {hamlet, zoe}