test_classes: Clean up API for unsubscribing.

The old API required test authors to unnecessarily repeat themselves.
This commit is contained in:
Tim Abbott 2017-08-24 21:23:11 -07:00
parent eb720485c5
commit 5fa7c3e0b2
4 changed files with 13 additions and 15 deletions

View File

@ -506,10 +506,9 @@ class ZulipTestCase(TestCase):
bulk_add_subscriptions([stream], [user_profile], from_stream_creation=from_stream_creation)
return stream
def unsubscribe_from_stream(self, email, stream_name, realm):
# type: (Text, Text, Realm) -> None
user_profile = get_user(email, realm)
stream = get_stream(stream_name, realm)
def unsubscribe(self, user_profile, stream_name):
# type: (UserProfile, Text) -> None
stream = get_stream(stream_name, user_profile.realm)
bulk_remove_subscriptions([user_profile], [stream])
# Subscribe to a stream by making an API request

View File

@ -301,7 +301,7 @@ class BotTest(ZulipTestCase, UploadSerializeMixin):
self.login(self.example_email('hamlet'))
realm = self.example_user('hamlet').realm
stream = get_stream("Denmark", realm)
self.unsubscribe_from_stream(self.example_email('hamlet'), "Denmark", realm)
self.unsubscribe(self.example_user('hamlet'), "Denmark")
do_change_stream_invite_only(stream, True)
bot_info = {
@ -371,7 +371,7 @@ class BotTest(ZulipTestCase, UploadSerializeMixin):
self.login(self.example_email('hamlet'))
realm = self.example_user('hamlet').realm
stream = get_stream("Denmark", realm)
self.unsubscribe_from_stream(self.example_email('hamlet'), "Denmark", realm)
self.unsubscribe(self.example_user('hamlet'), "Denmark")
do_change_stream_invite_only(stream, True)
self.assert_num_bots_equal(0)
@ -708,7 +708,7 @@ class BotTest(ZulipTestCase, UploadSerializeMixin):
self.login(self.example_email('hamlet'))
realm = self.example_user('hamlet').realm
stream = get_stream("Denmark", realm)
self.unsubscribe_from_stream(self.example_email('hamlet'), "Denmark", realm)
self.unsubscribe(self.example_user('hamlet'), "Denmark")
do_change_stream_invite_only(stream, True)
bot_info = {
@ -788,7 +788,7 @@ class BotTest(ZulipTestCase, UploadSerializeMixin):
self.login(self.example_email('hamlet'))
realm = self.example_user('hamlet').realm
stream = get_stream("Denmark", realm)
self.unsubscribe_from_stream(self.example_email('hamlet'), "Denmark", realm)
self.unsubscribe(self.example_user('hamlet'), "Denmark")
do_change_stream_invite_only(stream, True)
bot_info = {

View File

@ -2250,7 +2250,7 @@ class SoftDeactivationMessageTest(ZulipTestCase):
sent_message_list = []
sent_message_list.append(send_fake_message('Test Message 3', stream))
# Alter subscription to stream.
self.unsubscribe_from_stream(long_term_idle_user.email, stream_name, realm)
self.unsubscribe(long_term_idle_user, stream_name)
send_fake_message('Test Message 4', stream)
self.subscribe(long_term_idle_user, stream_name)
sent_message_list.append(send_fake_message('Test Message 5', stream))
@ -2272,17 +2272,17 @@ class SoftDeactivationMessageTest(ZulipTestCase):
sent_message_list.append(send_fake_message('Test Message 6', stream))
# Unsubscribe from stream and then immediately subscribe back again.
self.unsubscribe_from_stream(long_term_idle_user.email, stream_name, realm)
self.unsubscribe(long_term_idle_user, stream_name)
self.subscribe(long_term_idle_user, stream_name)
sent_message_list.append(send_fake_message('Test Message 7', stream))
# Again unsubscribe from stream and send a message.
# This will make sure that if initially in a unsubscribed state
# a consecutive subscribe/unsubscribe doesn't misbehave.
self.unsubscribe_from_stream(long_term_idle_user.email, stream_name, realm)
self.unsubscribe(long_term_idle_user, stream_name)
send_fake_message('Test Message 8', stream)
# Do a subscribe and unsubscribe immediately.
self.subscribe(long_term_idle_user, stream_name)
self.unsubscribe_from_stream(long_term_idle_user.email, stream_name, realm)
self.unsubscribe(long_term_idle_user, stream_name)
sent_message_list.reverse()
idle_user_msg_list = get_user_messages(long_term_idle_user)
@ -2307,7 +2307,7 @@ class SoftDeactivationMessageTest(ZulipTestCase):
send_fake_message('Test Message 9', private_stream)
self.subscribe(self.example_user("hamlet"), stream_name)
sent_message_list.append(send_fake_message('Test Message 10', private_stream))
self.unsubscribe_from_stream(long_term_idle_user.email, stream_name, realm)
self.unsubscribe(long_term_idle_user, stream_name)
send_fake_message('Test Message 11', private_stream)
self.subscribe(long_term_idle_user, stream_name)
sent_message_list.append(send_fake_message('Test Message 12', private_stream))

View File

@ -221,11 +221,10 @@ class StreamAdminTest(ZulipTestCase):
def test_vacate_private_stream_removes_default_stream(self):
# type: () -> None
stream = self.make_stream('new_stream', invite_only=True)
realm = self.example_user("hamlet").realm
self.subscribe(self.example_user("hamlet"), stream.name)
do_add_default_stream(stream)
self.assertEqual(1, DefaultStream.objects.filter(stream=stream).count())
self.unsubscribe_from_stream(self.example_email("hamlet"), stream.name, realm)
self.unsubscribe(self.example_user("hamlet"), stream.name)
self.assertEqual(0, DefaultStream.objects.filter(stream=stream).count())
# Fetch stream again from database.
stream = Stream.objects.get(id=stream.id)