From 2dc90e8ebd0204c927e3a78ffbf3535c19bdd944 Mon Sep 17 00:00:00 2001 From: Tim Abbott Date: Sun, 29 Jan 2017 19:05:39 -0800 Subject: [PATCH] rename_stream: Pass a stream object to do_rename_stream. --- zerver/lib/actions.py | 18 +++++------------- zerver/management/commands/rename_stream.py | 6 +++--- zerver/tests/test_events.py | 3 +-- zerver/views/streams.py | 2 +- 4 files changed, 10 insertions(+), 19 deletions(-) diff --git a/zerver/lib/actions.py b/zerver/lib/actions.py index a543cba9ea..294aa81133 100644 --- a/zerver/lib/actions.py +++ b/zerver/lib/actions.py @@ -2057,23 +2057,15 @@ def do_change_stream_invite_only(stream, invite_only): stream.invite_only = invite_only stream.save(update_fields=['invite_only']) -def do_rename_stream(realm, old_name, new_name, log=True): - # type: (Realm, Text, Text, bool) -> Dict[str, Text] - old_name = old_name - new_name = new_name - - stream = get_stream(old_name, realm) - - if not stream: - raise JsonableError(_('Unknown stream "%s"') % (old_name,)) - +def do_rename_stream(stream, new_name, log=True): + # type: (Stream, Text, bool) -> Dict[str, Text] old_name = stream.name stream.name = new_name stream.save(update_fields=["name"]) if log: log_event({'type': 'stream_name_change', - 'domain': realm.domain, + 'domain': stream.realm.domain, 'new_name': new_name}) recipient = get_recipient(Recipient.STREAM, stream.id) @@ -2081,8 +2073,8 @@ def do_rename_stream(realm, old_name, new_name, log=True): # Update the display recipient and stream, which are easy single # items to set. - old_cache_key = get_stream_cache_key(old_name, realm) - new_cache_key = get_stream_cache_key(stream.name, realm) + old_cache_key = get_stream_cache_key(old_name, stream.realm) + new_cache_key = get_stream_cache_key(stream.name, stream.realm) if old_cache_key != new_cache_key: cache_delete(old_cache_key) cache_set(new_cache_key, stream) diff --git a/zerver/management/commands/rename_stream.py b/zerver/management/commands/rename_stream.py index dfeeb41ac6..1354aad6e3 100644 --- a/zerver/management/commands/rename_stream.py +++ b/zerver/management/commands/rename_stream.py @@ -8,7 +8,7 @@ from django.core.management.base import BaseCommand from zerver.lib.actions import do_rename_stream from zerver.lib.str_utils import force_text -from zerver.models import Realm, get_realm +from zerver.models import Realm, get_realm, get_stream import sys @@ -36,5 +36,5 @@ class Command(BaseCommand): print("Unknown subdomain or string_id %s" % (string_id,)) exit(1) - do_rename_stream(realm, force_text(old_name, encoding), - force_text(new_name, encoding)) + stream = get_stream(force_text(old_name, encoding), realm) + do_rename_stream(stream, force_text(new_name, encoding)) diff --git a/zerver/tests/test_events.py b/zerver/tests/test_events.py index d2dded93e9..613f16cfc4 100644 --- a/zerver/tests/test_events.py +++ b/zerver/tests/test_events.py @@ -916,12 +916,11 @@ class EventsRegisterTest(ZulipTestCase): def test_rename_stream(self): # type: () -> None - realm = get_realm('zulip') stream = self.make_stream('old_name') new_name = u'stream with a brand new name' self.subscribe_to_stream(self.user_profile.email, stream.name) - action = lambda: do_rename_stream(realm, stream.name, new_name) + action = lambda: do_rename_stream(stream, new_name) events = self.do_test(action) schema_checker = check_dict([ diff --git a/zerver/views/streams.py b/zerver/views/streams.py index dd94b25943..29aea0a9a6 100644 --- a/zerver/views/streams.py +++ b/zerver/views/streams.py @@ -102,7 +102,7 @@ def update_stream_backend(request, user_profile, stream_id, return json_error(_("Stream already has that name!")) if get_stream(new_name, user_profile.realm) is not None: raise JsonableError(_('Stream name "%s" is already taken') % (new_name,)) - do_rename_stream(user_profile.realm, stream.name, new_name) + do_rename_stream(stream, new_name) if is_private is not None: do_change_stream_invite_only(stream, is_private) return json_success()