test_classes: Use get_user in get_streams function.

This commit is contained in:
Vishnu Ks
2017-07-12 16:37:48 +05:30
committed by Tim Abbott
parent 466c3f92f9
commit 99e78cbead
2 changed files with 31 additions and 27 deletions

View File

@@ -344,12 +344,12 @@ class ZulipTestCase(TestCase):
'HTTP_AUTHORIZATION': u'Basic ' + base64.b64encode(credentials.encode('utf-8')).decode('utf-8') 'HTTP_AUTHORIZATION': u'Basic ' + base64.b64encode(credentials.encode('utf-8')).decode('utf-8')
} }
def get_streams(self, email): def get_streams(self, email, realm):
# type: (Text) -> List[Text] # type: (Text, Realm) -> List[Text]
""" """
Helper function to get the stream names for a user Helper function to get the stream names for a user
""" """
user_profile = get_user_profile_by_email(email) user_profile = get_user(email, realm)
subs = Subscription.objects.filter( subs = Subscription.objects.filter(
user_profile=user_profile, user_profile=user_profile,
active=True, active=True,

View File

@@ -1026,6 +1026,7 @@ class SubscriptionRestApiTest(ZulipTestCase):
def test_basic_add_delete(self): def test_basic_add_delete(self):
# type: () -> None # type: () -> None
email = self.example_email('hamlet') email = self.example_email('hamlet')
realm = self.example_user('hamlet').realm
self.login(email) self.login(email)
# add # add
@@ -1038,7 +1039,7 @@ class SubscriptionRestApiTest(ZulipTestCase):
**self.api_auth(email) **self.api_auth(email)
) )
self.assert_json_success(result) self.assert_json_success(result)
streams = self.get_streams(email) streams = self.get_streams(email, realm)
self.assertTrue('my_test_stream_1' in streams) self.assertTrue('my_test_stream_1' in streams)
# now delete the same stream # now delete the same stream
@@ -1051,7 +1052,7 @@ class SubscriptionRestApiTest(ZulipTestCase):
**self.api_auth(email) **self.api_auth(email)
) )
self.assert_json_success(result) self.assert_json_success(result)
streams = self.get_streams(email) streams = self.get_streams(email, realm)
self.assertTrue('my_test_stream_1' not in streams) self.assertTrue('my_test_stream_1' not in streams)
def test_api_valid_property(self): def test_api_valid_property(self):
@@ -1264,7 +1265,7 @@ class SubscriptionAPITest(ZulipTestCase):
self.test_email = self.user_profile.email self.test_email = self.user_profile.email
self.login(self.test_email) self.login(self.test_email)
self.test_realm = self.user_profile.realm self.test_realm = self.user_profile.realm
self.streams = self.get_streams(self.test_email) self.streams = self.get_streams(self.test_email, self.test_realm)
def make_random_stream_names(self, existing_stream_names): def make_random_stream_names(self, existing_stream_names):
# type: (List[Text]) -> List[Text] # type: (List[Text]) -> List[Text]
@@ -1304,8 +1305,8 @@ class SubscriptionAPITest(ZulipTestCase):
def helper_check_subs_before_and_after_add(self, subscriptions, other_params, def helper_check_subs_before_and_after_add(self, subscriptions, other_params,
subscribed, already_subscribed, subscribed, already_subscribed,
email, new_subs, invite_only=False): email, new_subs, realm, invite_only=False):
# type: (List[Text], Dict[str, Any], List[Text], List[Text], Text, List[Text], bool) -> None # type: (List[Text], Dict[str, Any], List[Text], List[Text], Text, List[Text], Realm, bool) -> None
""" """
Check result of adding subscriptions. Check result of adding subscriptions.
@@ -1326,7 +1327,7 @@ class SubscriptionAPITest(ZulipTestCase):
json = ujson.loads(result.content) json = ujson.loads(result.content)
self.assertEqual(sorted(subscribed), sorted(json["subscribed"][email])) self.assertEqual(sorted(subscribed), sorted(json["subscribed"][email]))
self.assertEqual(sorted(already_subscribed), sorted(json["already_subscribed"][email])) self.assertEqual(sorted(already_subscribed), sorted(json["already_subscribed"][email]))
new_streams = self.get_streams(email) new_streams = self.get_streams(email, realm)
self.assertEqual(sorted(new_streams), sorted(new_subs)) self.assertEqual(sorted(new_streams), sorted(new_subs))
def test_successful_subscriptions_add(self): def test_successful_subscriptions_add(self):
@@ -1344,7 +1345,8 @@ class SubscriptionAPITest(ZulipTestCase):
events = [] # type: List[Dict[str, Any]] events = [] # type: List[Dict[str, Any]]
with tornado_redirected_to_list(events): with tornado_redirected_to_list(events):
self.helper_check_subs_before_and_after_add(self.streams + add_streams, {}, self.helper_check_subs_before_and_after_add(self.streams + add_streams, {},
add_streams, self.streams, self.test_email, self.streams + add_streams) add_streams, self.streams, self.test_email,
self.streams + add_streams, self.test_realm)
self.assert_length(events, 8) self.assert_length(events, 8)
def test_successful_subscriptions_add_with_announce(self): def test_successful_subscriptions_add_with_announce(self):
@@ -1372,7 +1374,8 @@ class SubscriptionAPITest(ZulipTestCase):
cache.cache_delete(cache.user_profile_by_email_cache_key(self.test_email)) cache.cache_delete(cache.user_profile_by_email_cache_key(self.test_email))
with tornado_redirected_to_list(events): with tornado_redirected_to_list(events):
self.helper_check_subs_before_and_after_add(self.streams + add_streams, other_params, self.helper_check_subs_before_and_after_add(self.streams + add_streams, other_params,
add_streams, self.streams, self.test_email, self.streams + add_streams) add_streams, self.streams, self.test_email,
self.streams + add_streams, self.test_realm)
self.assertEqual(len(events), 9) self.assertEqual(len(events), 9)
def test_successful_subscriptions_notifies_pm(self): def test_successful_subscriptions_notifies_pm(self):
@@ -1382,7 +1385,7 @@ class SubscriptionAPITest(ZulipTestCase):
""" """
invitee = self.example_email("iago") invitee = self.example_email("iago")
current_stream = self.get_streams(invitee)[0] current_stream = self.get_streams(invitee, self.test_realm)[0]
invite_streams = self.make_random_stream_names([current_stream])[:1] invite_streams = self.make_random_stream_names([current_stream])[:1]
result = self.common_subscribe_to_streams( result = self.common_subscribe_to_streams(
invitee, invitee,
@@ -1402,7 +1405,7 @@ class SubscriptionAPITest(ZulipTestCase):
invitee = self.example_email("iago") invitee = self.example_email("iago")
invitee_full_name = 'Iago' invitee_full_name = 'Iago'
current_stream = self.get_streams(invitee)[0] current_stream = self.get_streams(invitee, self.test_realm)[0]
invite_streams = self.make_random_stream_names([current_stream])[:1] invite_streams = self.make_random_stream_names([current_stream])[:1]
notifications_stream = get_stream(current_stream, self.test_realm) notifications_stream = get_stream(current_stream, self.test_realm)
@@ -1476,7 +1479,7 @@ class SubscriptionAPITest(ZulipTestCase):
invitee = self.example_email("iago") invitee = self.example_email("iago")
invitee_full_name = 'Iago' invitee_full_name = 'Iago'
current_stream = self.get_streams(invitee)[0] current_stream = self.get_streams(invitee, self.test_realm)[0]
notifications_stream = get_stream(current_stream, self.test_realm) notifications_stream = get_stream(current_stream, self.test_realm)
self.test_realm.notifications_stream = notifications_stream self.test_realm.notifications_stream = notifications_stream
self.test_realm.save() self.test_realm.save()
@@ -1503,7 +1506,8 @@ class SubscriptionAPITest(ZulipTestCase):
Subscribing to a stream name with non-ASCII characters succeeds. Subscribing to a stream name with non-ASCII characters succeeds.
""" """
self.helper_check_subs_before_and_after_add(self.streams + [u"hümbüǵ"], {}, self.helper_check_subs_before_and_after_add(self.streams + [u"hümbüǵ"], {},
[u"hümbüǵ"], self.streams, self.test_email, self.streams + [u"hümbüǵ"]) [u"hümbüǵ"], self.streams, self.test_email,
self.streams + [u"hümbüǵ"], self.test_realm)
def test_subscriptions_add_too_long(self): def test_subscriptions_add_too_long(self):
# type: () -> None # type: () -> None
@@ -1565,7 +1569,7 @@ class SubscriptionAPITest(ZulipTestCase):
them. them.
""" """
other_profile = get_user(invitee_email, invitee_realm) other_profile = get_user(invitee_email, invitee_realm)
current_streams = self.get_streams(invitee_email) current_streams = self.get_streams(invitee_email, invitee_realm)
self.assertIsInstance(other_profile, UserProfile) self.assertIsInstance(other_profile, UserProfile)
self.assertNotEqual(len(current_streams), 0) # necessary for full test coverage self.assertNotEqual(len(current_streams), 0) # necessary for full test coverage
self.assertNotEqual(len(streams), 0) # necessary for full test coverage self.assertNotEqual(len(streams), 0) # necessary for full test coverage
@@ -1574,7 +1578,7 @@ class SubscriptionAPITest(ZulipTestCase):
self.helper_check_subs_before_and_after_add(streams_to_sub, self.helper_check_subs_before_and_after_add(streams_to_sub,
{"principals": ujson.dumps([invitee_email])}, streams[:1], {"principals": ujson.dumps([invitee_email])}, streams[:1],
current_streams, invitee_email, streams_to_sub, current_streams, invitee_email, streams_to_sub,
invite_only=invite_only) invitee_realm, invite_only=invite_only)
# verify that a welcome message was sent to the stream # verify that a welcome message was sent to the stream
msg = self.get_last_message() msg = self.get_last_message()
@@ -1597,7 +1601,7 @@ class SubscriptionAPITest(ZulipTestCase):
streams_to_sub, streams_to_sub,
dict(principals=ujson.dumps([email1, email2])), dict(principals=ujson.dumps([email1, email2])),
) )
self.assert_length(queries, 37) self.assert_length(queries, 40)
self.assert_length(events, 7) self.assert_length(events, 7)
for ev in [x for x in events if x['event']['type'] not in ('message', 'stream')]: for ev in [x for x in events if x['event']['type'] not in ('message', 'stream')]:
@@ -1861,7 +1865,7 @@ class SubscriptionAPITest(ZulipTestCase):
dict(principals=ujson.dumps([self.test_email])), dict(principals=ujson.dumps([self.test_email])),
) )
# Make sure we don't make O(streams) queries # Make sure we don't make O(streams) queries
self.assert_length(queries, 14) self.assert_length(queries, 17)
@slow("common_subscribe_to_streams is slow") @slow("common_subscribe_to_streams is slow")
def test_subscriptions_add_for_principal(self): def test_subscriptions_add_for_principal(self):
@@ -1871,7 +1875,7 @@ class SubscriptionAPITest(ZulipTestCase):
""" """
invitee_email = self.example_email("iago") invitee_email = self.example_email("iago")
invitee_realm = get_realm('zulip') invitee_realm = get_realm('zulip')
current_streams = self.get_streams(invitee_email) current_streams = self.get_streams(invitee_email, invitee_realm)
invite_streams = self.make_random_stream_names(current_streams) invite_streams = self.make_random_stream_names(current_streams)
self.assert_adding_subscriptions_for_principal(invitee_email, invitee_realm, invite_streams) self.assert_adding_subscriptions_for_principal(invitee_email, invitee_realm, invite_streams)
@@ -1883,7 +1887,7 @@ class SubscriptionAPITest(ZulipTestCase):
""" """
invitee_email = self.example_email("iago") invitee_email = self.example_email("iago")
invitee_realm = get_realm('zulip') invitee_realm = get_realm('zulip')
current_streams = self.get_streams(invitee_email) current_streams = self.get_streams(invitee_email, invitee_realm)
invite_streams = self.make_random_stream_names(current_streams) invite_streams = self.make_random_stream_names(current_streams)
self.assert_adding_subscriptions_for_principal(invitee_email, invitee_realm, invite_streams, self.assert_adding_subscriptions_for_principal(invitee_email, invitee_realm, invite_streams,
invite_only=True) invite_only=True)
@@ -1929,8 +1933,8 @@ class SubscriptionAPITest(ZulipTestCase):
% (principal,), status_code=403) % (principal,), status_code=403)
def helper_check_subs_before_and_after_remove(self, subscriptions, json_dict, def helper_check_subs_before_and_after_remove(self, subscriptions, json_dict,
email, new_subs): email, new_subs, realm):
# type: (List[Text], Dict[str, Any], Text, List[Text]) -> None # type: (List[Text], Dict[str, Any], Text, List[Text], Realm) -> None
""" """
Check result of removing subscriptions. Check result of removing subscriptions.
@@ -1947,7 +1951,7 @@ class SubscriptionAPITest(ZulipTestCase):
json = ujson.loads(result.content) json = ujson.loads(result.content)
for key, val in six.iteritems(json_dict): for key, val in six.iteritems(json_dict):
self.assertEqual(sorted(val), sorted(json[key])) # we don't care about the order of the items self.assertEqual(sorted(val), sorted(json[key])) # we don't care about the order of the items
new_streams = self.get_streams(email) new_streams = self.get_streams(email, realm)
self.assertEqual(sorted(new_streams), sorted(new_subs)) self.assertEqual(sorted(new_streams), sorted(new_subs))
def test_successful_subscriptions_remove(self): def test_successful_subscriptions_remove(self):
@@ -1970,7 +1974,7 @@ class SubscriptionAPITest(ZulipTestCase):
streams_to_remove.extend(try_to_remove) streams_to_remove.extend(try_to_remove)
self.helper_check_subs_before_and_after_remove(streams_to_remove, self.helper_check_subs_before_and_after_remove(streams_to_remove,
{"removed": self.streams[1:], "not_subscribed": try_to_remove}, {"removed": self.streams[1:], "not_subscribed": try_to_remove},
self.test_email, [self.streams[0]]) self.test_email, [self.streams[0]], self.test_realm)
def test_subscriptions_remove_fake_stream(self): def test_subscriptions_remove_fake_stream(self):
# type: () -> None # type: () -> None
@@ -2127,7 +2131,7 @@ class SubscriptionAPITest(ZulipTestCase):
user_profile.enable_stream_desktop_notifications = True user_profile.enable_stream_desktop_notifications = True
user_profile.enable_stream_sounds = True user_profile.enable_stream_sounds = True
user_profile.save() user_profile.save()
current_stream = self.get_streams(invitee_email)[0] current_stream = self.get_streams(invitee_email, invitee_realm)[0]
invite_streams = self.make_random_stream_names([current_stream]) invite_streams = self.make_random_stream_names([current_stream])
self.assert_adding_subscriptions_for_principal(invitee_email, invitee_realm, invite_streams) self.assert_adding_subscriptions_for_principal(invitee_email, invitee_realm, invite_streams)
subscription = self.get_subscription(user_profile, invite_streams[0]) subscription = self.get_subscription(user_profile, invite_streams[0])
@@ -2153,7 +2157,7 @@ class SubscriptionAPITest(ZulipTestCase):
user_profile.enable_stream_desktop_notifications = False user_profile.enable_stream_desktop_notifications = False
user_profile.enable_stream_sounds = False user_profile.enable_stream_sounds = False
user_profile.save() user_profile.save()
current_stream = self.get_streams(invitee_email)[0] current_stream = self.get_streams(invitee_email, invitee_realm)[0]
invite_streams = self.make_random_stream_names([current_stream]) invite_streams = self.make_random_stream_names([current_stream])
self.assert_adding_subscriptions_for_principal(invitee_email, invitee_realm, invite_streams) self.assert_adding_subscriptions_for_principal(invitee_email, invitee_realm, invite_streams)
subscription = self.get_subscription(user_profile, invite_streams[0]) subscription = self.get_subscription(user_profile, invite_streams[0])