mirror of
https://github.com/zulip/zulip.git
synced 2025-11-02 04:53:36 +00:00
Add create_streams_if_needed().
This commit is contained in:
@@ -805,6 +805,21 @@ def create_stream_if_needed(realm, stream_name, invite_only=False):
|
||||
send_event(event, active_user_ids(realm))
|
||||
return stream, created
|
||||
|
||||
def create_streams_if_needed(realm, stream_names, invite_only):
|
||||
# type: (Realm, List[text_type], bool) -> Tuple[List[Stream], List[Stream]]
|
||||
added_streams = [] # type: List[Stream]
|
||||
existing_streams = [] # type: List[Stream]
|
||||
for stream_name in stream_names:
|
||||
stream, created = create_stream_if_needed(realm,
|
||||
stream_name,
|
||||
invite_only=invite_only)
|
||||
if created:
|
||||
added_streams.append(stream)
|
||||
else:
|
||||
existing_streams.append(stream)
|
||||
|
||||
return added_streams, existing_streams
|
||||
|
||||
def recipient_for_emails(emails, not_forged_mirror_message,
|
||||
user_profile, sender):
|
||||
# type: (Iterable[text_type], bool, UserProfile, UserProfile) -> Recipient
|
||||
|
||||
@@ -35,7 +35,8 @@ from zerver.lib.actions import (
|
||||
do_create_realm, do_remove_default_stream, do_set_realm_create_stream_by_admins_only,
|
||||
gather_subscriptions_helper,
|
||||
gather_subscriptions, get_default_streams_for_realm, get_realm, get_stream,
|
||||
get_user_profile_by_email, set_default_streams, get_subscription
|
||||
get_user_profile_by_email, set_default_streams, get_subscription,
|
||||
create_streams_if_needed
|
||||
)
|
||||
|
||||
from zerver.views.streams import (
|
||||
@@ -50,6 +51,31 @@ import six
|
||||
from six import text_type
|
||||
from six.moves import range, urllib
|
||||
|
||||
class TestCreateStreams(ZulipTestCase):
|
||||
def test_creating_streams(self):
|
||||
# type: () -> None
|
||||
stream_names = [u'new1', u'new2', u'new3']
|
||||
realm = get_realm('zulip.com')
|
||||
|
||||
new_streams, existing_streams = create_streams_if_needed(
|
||||
realm,
|
||||
stream_names,
|
||||
invite_only=True)
|
||||
self.assertEqual(len(new_streams), 3)
|
||||
self.assertEqual(len(existing_streams), 0)
|
||||
|
||||
actual_stream_names = {stream.name for stream in new_streams}
|
||||
self.assertEqual(actual_stream_names, set(stream_names))
|
||||
|
||||
new_streams, existing_streams = create_streams_if_needed(
|
||||
realm,
|
||||
stream_names,
|
||||
invite_only=True)
|
||||
self.assertEqual(len(new_streams), 0)
|
||||
self.assertEqual(len(existing_streams), 3)
|
||||
|
||||
actual_stream_names = {stream.name for stream in existing_streams}
|
||||
self.assertEqual(actual_stream_names, set(stream_names))
|
||||
|
||||
class StreamAdminTest(ZulipTestCase):
|
||||
def test_make_stream_public(self):
|
||||
|
||||
Reference in New Issue
Block a user