models: Create get_notifications_stream method in class Realm.

This commit is contained in:
Vishnu Ks 2017-08-23 22:36:29 +00:00 committed by Tim Abbott
parent ead40d8d08
commit 59790f37fc
2 changed files with 20 additions and 1 deletions

View File

@ -232,6 +232,12 @@ class Realm(ModelReprMixin, models.Model):
return "%s.%s" % (self.string_id, external_host) return "%s.%s" % (self.string_id, external_host)
return external_host return external_host
def get_notifications_stream(self):
# type: () -> Optional[Realm]
if self.notifications_stream is not None and not self.notifications_stream.deactivated:
return self.notifications_stream
return None
@property @property
def subdomain(self): def subdomain(self):
# type: () -> Optional[Text] # type: () -> Optional[Text]

View File

@ -12,12 +12,13 @@ from zerver.lib.actions import (
do_change_is_admin, do_change_is_admin,
do_set_realm_property, do_set_realm_property,
do_deactivate_realm, do_deactivate_realm,
do_deactivate_stream,
) )
from zerver.lib.send_email import send_future_email from zerver.lib.send_email import send_future_email
from zerver.lib.test_classes import ZulipTestCase from zerver.lib.test_classes import ZulipTestCase
from zerver.lib.test_helpers import tornado_redirected_to_list from zerver.lib.test_helpers import tornado_redirected_to_list
from zerver.models import get_realm, Realm, UserProfile, ScheduledEmail from zerver.models import get_realm, Realm, UserProfile, ScheduledEmail, get_stream
class RealmTest(ZulipTestCase): class RealmTest(ZulipTestCase):
def assert_user_profile_cache_gets_new_name(self, user_profile, new_realm_name): def assert_user_profile_cache_gets_new_name(self, user_profile, new_realm_name):
@ -202,6 +203,18 @@ class RealmTest(ZulipTestCase):
realm = get_realm('zulip') realm = get_realm('zulip')
self.assertNotEqual(realm.notifications_stream.id, invalid_notif_stream_id) self.assertNotEqual(realm.notifications_stream.id, invalid_notif_stream_id)
def test_get_default_notifications_stream(self):
# type: () -> None
realm = get_realm("zulip")
verona = get_stream("verona", realm)
realm.notifications_stream = verona
realm.save()
notifications_stream = realm.get_notifications_stream()
self.assertEqual(notifications_stream, verona)
do_deactivate_stream(notifications_stream)
self.assertIsNone(realm.get_notifications_stream())
def test_change_realm_default_language(self): def test_change_realm_default_language(self):
# type: () -> None # type: () -> None
new_lang = "de" new_lang = "de"