Only send stream update events to clients that need them

Stream name and descriptions updates were being sent to all of the
active users on a realm. They are now only send to users who would have
information about that stream.

(imported from commit 2621ee8029f7356bf44ec493d7b5361bd546a8f5)
This commit is contained in:
Jason Michalski
2014-01-27 17:43:05 -05:00
parent c573efd437
commit 05e00575bb
2 changed files with 28 additions and 4 deletions

View File

@@ -391,6 +391,8 @@ class StreamAdminTest(AuthedTestCase):
value='stream_name2',
name='stream_name1'
))
users = events[0]['users']
self.assertEqual(users, [user_profile.id])
stream_name1_exists = Stream.objects.filter(
name='stream_name1',
@@ -422,10 +424,23 @@ class StreamAdminTest(AuthedTestCase):
do_add_subscription(user_profile, stream, no_log=True)
do_change_is_admin(user_profile, True)
result = self.client_patch('/json/streams/stream_name1',
{'description': ujson.dumps('Test description')})
events = []
with tornado_redirected_to_list(events):
result = self.client_patch('/json/streams/stream_name1',
{'description': ujson.dumps('Test description')})
self.assert_json_success(result)
event = events[0]['event']
self.assertEqual(event, dict(
op='update',
type='stream',
property='description',
value='Test description',
name='stream_name1'
))
users = events[0]['users']
self.assertEqual(users, [user_profile.id])
stream = Stream.objects.get(
name='stream_name1',
realm=realm,
@@ -436,6 +451,7 @@ class StreamAdminTest(AuthedTestCase):
email = 'hamlet@zulip.com'
self.login(email)
user_profile = get_user_profile_by_email(email)
realm = user_profile.realm
stream, _ = create_stream_if_needed(realm, 'stream_name1')
do_add_subscription(user_profile, stream, no_log=True)