mirror of
https://github.com/zulip/zulip.git
synced 2025-11-03 13:33:24 +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))
|
send_event(event, active_user_ids(realm))
|
||||||
return stream, created
|
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,
|
def recipient_for_emails(emails, not_forged_mirror_message,
|
||||||
user_profile, sender):
|
user_profile, sender):
|
||||||
# type: (Iterable[text_type], bool, UserProfile, UserProfile) -> Recipient
|
# 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,
|
do_create_realm, do_remove_default_stream, do_set_realm_create_stream_by_admins_only,
|
||||||
gather_subscriptions_helper,
|
gather_subscriptions_helper,
|
||||||
gather_subscriptions, get_default_streams_for_realm, get_realm, get_stream,
|
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 (
|
from zerver.views.streams import (
|
||||||
@@ -50,6 +51,31 @@ import six
|
|||||||
from six import text_type
|
from six import text_type
|
||||||
from six.moves import range, urllib
|
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):
|
class StreamAdminTest(ZulipTestCase):
|
||||||
def test_make_stream_public(self):
|
def test_make_stream_public(self):
|
||||||
|
|||||||
Reference in New Issue
Block a user