refactor: Make acting_user a mandatory kwarg for bulk_add_subscriptions.

This commit is contained in:
shanukun 2021-04-02 22:03:28 +05:30 committed by Tim Abbott
parent 790085832c
commit 0bf067b681
10 changed files with 27 additions and 14 deletions

View File

@ -90,7 +90,7 @@ def create_integration_stream(integration: WebhookIntegration, bot: UserProfile)
assert isinstance(bot.bot_owner, UserProfile) assert isinstance(bot.bot_owner, UserProfile)
realm = bot.bot_owner.realm realm = bot.bot_owner.realm
stream, created = create_stream_if_needed(realm, integration.stream_name) stream, created = create_stream_if_needed(realm, integration.stream_name)
bulk_add_subscriptions(realm, [stream], [bot, bot.bot_owner]) bulk_add_subscriptions(realm, [stream], [bot, bot.bot_owner], acting_user=bot)
def get_integration(integration_name: str) -> WebhookIntegration: def get_integration(integration_name: str) -> WebhookIntegration:

View File

@ -481,7 +481,11 @@ def process_new_human_user(
streams.append(stream) streams.append(stream)
bulk_add_subscriptions( bulk_add_subscriptions(
realm, streams, [user_profile], acting_user=acting_user, from_user_creation=True realm,
streams,
[user_profile],
from_user_creation=True,
acting_user=acting_user,
) )
add_new_user_history(user_profile, streams) add_new_user_history(user_profile, streams)
@ -3239,8 +3243,9 @@ def bulk_add_subscriptions(
streams: Iterable[Stream], streams: Iterable[Stream],
users: Iterable[UserProfile], users: Iterable[UserProfile],
color_map: Mapping[str, str] = {}, color_map: Mapping[str, str] = {},
acting_user: Optional[UserProfile] = None,
from_user_creation: bool = False, from_user_creation: bool = False,
*,
acting_user: Optional[UserProfile],
) -> SubT: ) -> SubT:
users = list(users) users = list(users)

View File

@ -959,7 +959,7 @@ Output:
stream = get_stream(stream_name, user_profile.realm) stream = get_stream(stream_name, user_profile.realm)
except Stream.DoesNotExist: except Stream.DoesNotExist:
stream, from_stream_creation = create_stream_if_needed(realm, stream_name) stream, from_stream_creation = create_stream_if_needed(realm, stream_name)
bulk_add_subscriptions(realm, [stream], [user_profile]) bulk_add_subscriptions(realm, [stream], [user_profile], acting_user=None)
return stream return stream
def unsubscribe(self, user_profile: UserProfile, stream_name: str) -> None: def unsubscribe(self, user_profile: UserProfile, stream_name: str) -> None:

View File

@ -28,7 +28,7 @@ class Command(ZulipBaseCommand):
for user_profile in user_profiles: for user_profile in user_profiles:
stream = ensure_stream(realm, stream_name, acting_user=None) stream = ensure_stream(realm, stream_name, acting_user=None)
_ignore, already_subscribed = bulk_add_subscriptions( _ignore, already_subscribed = bulk_add_subscriptions(
realm, [stream], [user_profile] realm, [stream], [user_profile], acting_user=None
) )
was_there_already = user_profile.id in (info.user.id for info in already_subscribed) was_there_already = user_profile.id in (info.user.id for info in already_subscribed)
print( print(

View File

@ -82,4 +82,4 @@ class Command(ZulipBaseCommand):
do_deactivate_stream(stream_to_destroy, acting_user=None) do_deactivate_stream(stream_to_destroy, acting_user=None)
if len(users_to_activate) > 0: if len(users_to_activate) > 0:
print(f"Adding {len(users_to_activate)} subscriptions") print(f"Adding {len(users_to_activate)} subscriptions")
bulk_add_subscriptions(realm, [stream_to_keep], users_to_activate) bulk_add_subscriptions(realm, [stream_to_keep], users_to_activate, acting_user=None)

View File

@ -2045,7 +2045,9 @@ class SubscribeActionTest(BaseAction):
stream.save() stream.save()
user_profile = self.example_user("hamlet") user_profile = self.example_user("hamlet")
action = lambda: bulk_add_subscriptions(user_profile.realm, [stream], [user_profile]) action = lambda: bulk_add_subscriptions(
user_profile.realm, [stream], [user_profile], acting_user=None
)
events = self.verify_action(action, include_subscribers=include_subscribers, num_events=2) events = self.verify_action(action, include_subscribers=include_subscribers, num_events=2)
check_stream_create("events[0]", events[0]) check_stream_create("events[0]", events[0])
check_subscription_add("events[1]", events[1]) check_subscription_add("events[1]", events[1])

View File

@ -3610,7 +3610,7 @@ class SubscriptionAPITest(ZulipTestCase):
realm3 = user_profile.realm realm3 = user_profile.realm
stream = get_stream("multi_user_stream", realm) stream = get_stream("multi_user_stream", realm)
with tornado_redirected_to_list(events): with tornado_redirected_to_list(events):
bulk_add_subscriptions(realm, [stream], [user_profile]) bulk_add_subscriptions(realm, [stream], [user_profile], acting_user=None)
self.assert_length(events, 2) self.assert_length(events, 2)
add_event, add_peer_event = events add_event, add_peer_event = events
@ -3639,14 +3639,14 @@ class SubscriptionAPITest(ZulipTestCase):
stream = ensure_stream(realm, stream_name, invite_only=True, acting_user=None) stream = ensure_stream(realm, stream_name, invite_only=True, acting_user=None)
existing_user_profile = self.example_user("hamlet") existing_user_profile = self.example_user("hamlet")
bulk_add_subscriptions(realm, [stream], [existing_user_profile]) bulk_add_subscriptions(realm, [stream], [existing_user_profile], acting_user=None)
# Now subscribe Cordelia to the stream, capturing events # Now subscribe Cordelia to the stream, capturing events
user_profile = self.example_user("cordelia") user_profile = self.example_user("cordelia")
events: List[Mapping[str, Any]] = [] events: List[Mapping[str, Any]] = []
with tornado_redirected_to_list(events): with tornado_redirected_to_list(events):
bulk_add_subscriptions(realm, [stream], [user_profile]) bulk_add_subscriptions(realm, [stream], [user_profile], acting_user=None)
self.assert_length(events, 3) self.assert_length(events, 3)
create_event, add_event, add_peer_event = events create_event, add_event, add_peer_event = events
@ -3678,7 +3678,9 @@ class SubscriptionAPITest(ZulipTestCase):
new_stream = ensure_stream(realm, "private stream", invite_only=True, acting_user=None) new_stream = ensure_stream(realm, "private stream", invite_only=True, acting_user=None)
events = [] events = []
with tornado_redirected_to_list(events): with tornado_redirected_to_list(events):
bulk_add_subscriptions(realm, [new_stream], [self.example_user("iago")]) bulk_add_subscriptions(
realm, [new_stream], [self.example_user("iago")], acting_user=None
)
# Note that since iago is an admin, he won't get a stream/create # Note that since iago is an admin, he won't get a stream/create
# event here. # event here.

View File

@ -413,7 +413,9 @@ def accounts_register(request: HttpRequest) -> HttpResponse:
) )
if realm_creation: if realm_creation:
bulk_add_subscriptions(realm, [realm.signup_notifications_stream], [user_profile]) bulk_add_subscriptions(
realm, [realm.signup_notifications_stream], [user_profile], acting_user=None
)
send_initial_realm_messages(realm) send_initial_realm_messages(realm)
# Because for realm creation, registration happens on the # Because for realm creation, registration happens on the

View File

@ -64,7 +64,9 @@ From image editing program:
) )
self.set_avatar(twitter_bot, "static/images/features/twitter.png") self.set_avatar(twitter_bot, "static/images/features/twitter.png")
bulk_add_subscriptions(realm, [stream], list(UserProfile.objects.filter(realm=realm))) bulk_add_subscriptions(
realm, [stream], list(UserProfile.objects.filter(realm=realm)), acting_user=None
)
staged_messages: List[Dict[str, Any]] = [ staged_messages: List[Dict[str, Any]] = [
{ {

View File

@ -23,6 +23,6 @@ class Command(ZulipBaseCommand):
acting_user=None, acting_user=None,
) )
assert realm.signup_notifications_stream is not None assert realm.signup_notifications_stream is not None
bulk_add_subscriptions(realm, [realm.signup_notifications_stream], [user]) bulk_add_subscriptions(realm, [realm.signup_notifications_stream], [user], acting_user=None)
send_initial_realm_messages(realm) send_initial_realm_messages(realm)