[0-9]{2,8})",
                     url_format_string=r"https://trac.zulip.net/ticket/%(id)s").save()
         boring_msg = Message(sender=get_user_profile_by_email("othello@zulip.com"),
@@ -649,7 +649,7 @@ class BugdownTest(TestCase):
 
     def test_stream_single(self):
         # type: () -> None
-        denmark = get_stream('Denmark', get_realm_by_string_id('zulip'))
+        denmark = get_stream('Denmark', get_realm('zulip'))
         sender_user_profile = get_user_profile_by_email("othello@zulip.com")
         msg = Message(sender=sender_user_profile, sending_client=get_client("test"))
         content = "#**Denmark**"
@@ -663,7 +663,7 @@ class BugdownTest(TestCase):
         # type: () -> None
         sender_user_profile = get_user_profile_by_email("othello@zulip.com")
         msg = Message(sender=sender_user_profile, sending_client=get_client("test"))
-        realm = get_realm_by_string_id('zulip')
+        realm = get_realm('zulip')
         denmark = get_stream('Denmark', realm)
         scotland = get_stream('Scotland', realm)
         content = "Look to #**Denmark** and #**Scotland**, there something"
@@ -679,7 +679,7 @@ class BugdownTest(TestCase):
 
     def test_stream_case_sensitivity(self):
         # type: () -> None
-        realm = get_realm_by_string_id('zulip')
+        realm = get_realm('zulip')
         case_sens = Stream.objects.create(name='CaseSens', realm=realm)
         sender_user_profile = get_user_profile_by_email("othello@zulip.com")
         msg = Message(sender=sender_user_profile, sending_client=get_client("test"))
@@ -695,7 +695,7 @@ class BugdownTest(TestCase):
         """#StreamName requires the stream be spelled with the correct case
         currently.  If we change that in the future, we'll need to change this
         test."""
-        realm = get_realm_by_string_id('zulip')
+        realm = get_realm('zulip')
         Stream.objects.create(name='CaseSens', realm=realm)
         sender_user_profile = get_user_profile_by_email("othello@zulip.com")
         msg = Message(sender=sender_user_profile, sending_client=get_client("test"))
@@ -706,7 +706,7 @@ class BugdownTest(TestCase):
 
     def test_stream_unicode(self):
         # type: () -> None
-        realm = get_realm_by_string_id('zulip')
+        realm = get_realm('zulip')
         uni = Stream.objects.create(name=u'привет', realm=realm)
         sender_user_profile = get_user_profile_by_email("othello@zulip.com")
         msg = Message(sender=sender_user_profile, sending_client=get_client("test"))
@@ -861,7 +861,7 @@ class BugdownApiTests(ZulipTestCase):
         self.assert_json_success(result)
         data = ujson.loads(result.content)
         self.assertEqual(data['rendered'],
-                         u'This mentions #Denmark and @King Hamlet.
' % (get_stream("Denmark", get_realm_by_string_id("zulip")).id),)
+                         u'This mentions #Denmark and @King Hamlet.
' % (get_stream("Denmark", get_realm("zulip")).id),)
 
 class BugdownErrorTests(ZulipTestCase):
     def test_bugdown_error_handling(self):
diff --git a/zerver/tests/test_decorators.py b/zerver/tests/test_decorators.py
index 435199eaf5..f4767333a2 100644
--- a/zerver/tests/test_decorators.py
+++ b/zerver/tests/test_decorators.py
@@ -34,7 +34,7 @@ from zerver.lib.validator import (
     check_string, check_dict, check_bool, check_int, check_list
 )
 from zerver.models import \
-    get_realm_by_string_id, get_user_profile_by_email, UserProfile, Client
+    get_realm, get_user_profile_by_email, UserProfile, Client
 
 import ujson
 
@@ -484,8 +484,8 @@ class DeactivatedRealmTest(ZulipTestCase):
         rest_dispatch rejects requests in a deactivated realm, both /json and api
 
         """
-        realm = get_realm_by_string_id("zulip")
-        do_deactivate_realm(get_realm_by_string_id("zulip"))
+        realm = get_realm("zulip")
+        do_deactivate_realm(get_realm("zulip"))
 
         result = self.client_post("/json/messages", {"type": "private",
                                                      "content": "Test message",
@@ -519,7 +519,7 @@ class DeactivatedRealmTest(ZulipTestCase):
         authenticated_json_view views fail in a deactivated realm
 
         """
-        realm = get_realm_by_string_id("zulip")
+        realm = get_realm("zulip")
         email = "hamlet@zulip.com"
         test_password = "abcd1234"
         user_profile = get_user_profile_by_email(email)
@@ -537,7 +537,7 @@ class DeactivatedRealmTest(ZulipTestCase):
         logging in fails in a deactivated realm
 
         """
-        do_deactivate_realm(get_realm_by_string_id("zulip"))
+        do_deactivate_realm(get_realm("zulip"))
         result = self.login_with_return("hamlet@zulip.com")
         self.assert_in_response("has been deactivated", result)
 
@@ -547,7 +547,7 @@ class DeactivatedRealmTest(ZulipTestCase):
         Using a webhook while in a deactivated realm fails
 
         """
-        do_deactivate_realm(get_realm_by_string_id("zulip"))
+        do_deactivate_realm(get_realm("zulip"))
         email = "hamlet@zulip.com"
         api_key = self.get_api_key(email)
         url = "/api/v1/external/jira?api_key=%s&stream=jira_custom" % (api_key,)
diff --git a/zerver/tests/test_email_mirror.py b/zerver/tests/test_email_mirror.py
index 8dd78ee1be..9cfe033eaf 100644
--- a/zerver/tests/test_email_mirror.py
+++ b/zerver/tests/test_email_mirror.py
@@ -14,7 +14,7 @@ from zerver.lib.test_classes import (
 
 from zerver.models import (
     get_display_recipient, get_stream, get_user_profile_by_email,
-    Recipient, get_realm_by_string_id,
+    Recipient, get_realm,
 )
 
 from zerver.lib.actions import (
@@ -357,7 +357,7 @@ class TestCommandMTA(TestCase):
         # type: (mock.Mock) -> None
 
         sender = "hamlet@zulip.com"
-        stream = get_stream("Denmark", get_realm_by_string_id("zulip"))
+        stream = get_stream("Denmark", get_realm("zulip"))
         stream_to_address = encode_email_address(stream)
 
         template_path = os.path.join(MAILS_DIR, "simple.txt")
diff --git a/zerver/tests/test_events.py b/zerver/tests/test_events.py
index 1357563549..24029dd86d 100644
--- a/zerver/tests/test_events.py
+++ b/zerver/tests/test_events.py
@@ -7,7 +7,7 @@ from django.http import HttpRequest, HttpResponse
 from django.test import TestCase
 
 from zerver.models import (
-    get_client, get_realm_by_string_id, get_stream, get_user_profile_by_email,
+    get_client, get_realm, get_stream, get_user_profile_by_email,
     Message, Recipient, UserProfile
 )
 
@@ -254,7 +254,7 @@ class EventsRegisterTest(ZulipTestCase):
     def create_bot(self, email):
         # type: (str) -> UserProfile
         return do_create_user(email, '123',
-                              get_realm_by_string_id('zulip'), 'Test Bot', 'test',
+                              get_realm('zulip'), 'Test Bot', 'test',
                               bot_type=UserProfile.DEFAULT_BOT, bot_owner=self.user_profile)
 
     def realm_bot_schema(self, field_name, check):
@@ -783,12 +783,12 @@ class EventsRegisterTest(ZulipTestCase):
             ('op', equals('update')),
             ('realm_emoji', check_dict([])),
         ])
-        events = self.do_test(lambda: check_add_realm_emoji(get_realm_by_string_id("zulip"), "my_emoji",
+        events = self.do_test(lambda: check_add_realm_emoji(get_realm("zulip"), "my_emoji",
                                                             "https://realm.com/my_emoji"))
         error = schema_checker('events[0]', events[0])
         self.assert_on_error(error)
 
-        events = self.do_test(lambda: do_remove_realm_emoji(get_realm_by_string_id("zulip"), "my_emoji"))
+        events = self.do_test(lambda: do_remove_realm_emoji(get_realm("zulip"), "my_emoji"))
         error = schema_checker('events[0]', events[0])
         self.assert_on_error(error)
 
@@ -798,12 +798,12 @@ class EventsRegisterTest(ZulipTestCase):
             ('type', equals('realm_filters')),
             ('realm_filters', check_list(None)), # TODO: validate tuples in the list
         ])
-        events = self.do_test(lambda: do_add_realm_filter(get_realm_by_string_id("zulip"), "#(?P[123])",
+        events = self.do_test(lambda: do_add_realm_filter(get_realm("zulip"), "#(?P[123])",
                                                           "https://realm.com/my_realm_filter/%(id)s"))
         error = schema_checker('events[0]', events[0])
         self.assert_on_error(error)
 
-        self.do_test(lambda: do_remove_realm_filter(get_realm_by_string_id("zulip"), "#(?P[123])"))
+        self.do_test(lambda: do_remove_realm_filter(get_realm("zulip"), "#(?P[123])"))
         error = schema_checker('events[0]', events[0])
         self.assert_on_error(error)
 
@@ -890,7 +890,7 @@ class EventsRegisterTest(ZulipTestCase):
 
     def test_rename_stream(self):
         # type: () -> None
-        realm = get_realm_by_string_id('zulip')
+        realm = get_realm('zulip')
         stream = self.make_stream('old_name')
         new_name = u'stream with a brand new name'
         self.subscribe_to_stream(self.user_profile.email, stream.name)
@@ -1028,7 +1028,7 @@ class EventsRegisterTest(ZulipTestCase):
         error = add_schema_checker('events[1]', events[1])
         self.assert_on_error(error)
 
-        action = lambda: do_change_stream_description(get_realm_by_string_id('zulip'), 'test_stream', u'new description')
+        action = lambda: do_change_stream_description(get_realm('zulip'), 'test_stream', u'new description')
         events = self.do_test(action)
         error = stream_update_schema_checker('events[0]', events[0])
         self.assert_on_error(error)
diff --git a/zerver/tests/test_management_commands.py b/zerver/tests/test_management_commands.py
index 1c612be158..13ce8cea95 100644
--- a/zerver/tests/test_management_commands.py
+++ b/zerver/tests/test_management_commands.py
@@ -4,7 +4,7 @@ from mock import patch, MagicMock
 from django.test import TestCase
 from django.conf import settings
 from django.core.management import call_command
-from zerver.models import get_realm_by_string_id
+from zerver.models import get_realm
 from confirmation.models import RealmCreationKey, generate_realm_creation_url
 from datetime import timedelta
 from zerver.lib.test_classes import ZulipTestCase
@@ -79,7 +79,7 @@ class TestGenerateRealmCreationLink(ZulipTestCase):
             self.assert_in_success_response([u"Let's get started…"], result)
 
             # Create Realm with generated link
-            self.assertIsNone(get_realm_by_string_id('test'))
+            self.assertIsNone(get_realm('test'))
             result = self.client_post(generated_link, {'email': email})
             self.assertEqual(result.status_code, 302)
             self.assertTrue(result["Location"].endswith(
diff --git a/zerver/tests/test_messages.py b/zerver/tests/test_messages.py
index 69d4eaf582..7ea65f34d6 100644
--- a/zerver/tests/test_messages.py
+++ b/zerver/tests/test_messages.py
@@ -31,7 +31,7 @@ from zerver.lib.test_classes import (
 from zerver.models import (
     MAX_MESSAGE_LENGTH, MAX_SUBJECT_LENGTH,
     Message, Realm, Recipient, Stream, UserMessage, UserProfile, Attachment, RealmAlias,
-    get_realm_by_string_id, get_stream, get_user_profile_by_email,
+    get_realm, get_stream, get_user_profile_by_email,
     Reaction, sew_messages_and_reactions
 )
 
@@ -127,7 +127,7 @@ class TopicHistoryTest(ZulipTestCase):
         # out of realm
         bad_stream = self.make_stream(
             'mit_stream',
-            realm=get_realm_by_string_id('mit')
+            realm=get_realm('mit')
         )
         endpoint = '/json/users/me/%s/topics' % (bad_stream.id,)
         result = self.client_get(endpoint, dict())
@@ -158,7 +158,7 @@ class TestCrossRealmPMs(ZulipTestCase):
         # We need to save the object before we can access
         # the many-to-many relationship 'realms'
         dep.save()
-        dep.realms = [get_realm_by_string_id("zulip")]
+        dep.realms = [get_realm("zulip")]
         dep.save()
 
     def create_user(self, email):
@@ -383,7 +383,7 @@ class StreamMessagesTest(ZulipTestCase):
         """
         Check that messages sent to a stream reach all subscribers to that stream.
         """
-        realm = get_realm_by_string_id('zulip')
+        realm = get_realm('zulip')
         subscribers = self.users_subscribed_to_stream(stream_name, realm)
         old_subscriber_messages = []
         for subscriber in subscribers:
@@ -508,7 +508,7 @@ class StreamMessagesTest(ZulipTestCase):
 
         # Subscribe everyone to a stream with non-ASCII characters.
         non_ascii_stream_name = u"hümbüǵ"
-        realm = get_realm_by_string_id("zulip")
+        realm = get_realm("zulip")
         stream = self.make_stream(non_ascii_stream_name)
         for user_profile in UserProfile.objects.filter(realm=realm):
             self.subscribe_to_stream(user_profile.email, stream.name)
diff --git a/zerver/tests/test_narrow.py b/zerver/tests/test_narrow.py
index 675887fbbc..c7e29a5e7b 100644
--- a/zerver/tests/test_narrow.py
+++ b/zerver/tests/test_narrow.py
@@ -12,7 +12,7 @@ from sqlalchemy.sql import compiler # type: ignore
 
 from zerver.models import (
     Realm, Recipient, Stream, Subscription, UserProfile, Attachment,
-    get_display_recipient, get_recipient, get_realm_by_string_id, get_stream, get_user_profile_by_email,
+    get_display_recipient, get_recipient, get_realm, get_stream, get_user_profile_by_email,
     Reaction
 )
 from zerver.lib.message import (
@@ -70,7 +70,7 @@ def mute_stream(realm, user_profile, stream_name):
 class NarrowBuilderTest(ZulipTestCase):
     def setUp(self):
         # type: () -> None
-        self.realm = get_realm_by_string_id('zulip')
+        self.realm = get_realm('zulip')
         self.user_profile = get_user_profile_by_email("hamlet@zulip.com")
         self.builder = NarrowBuilder(self.user_profile, column('id'))
         self.raw_query = select([column("id")], None, "zerver_message")
@@ -333,7 +333,7 @@ class BuildNarrowFilterTest(TestCase):
 class IncludeHistoryTest(ZulipTestCase):
     def test_ok_to_include_history(self):
         # type: () -> None
-        realm = get_realm_by_string_id('zulip')
+        realm = get_realm('zulip')
         self.make_stream('public_stream', realm=realm)
 
         # Negated stream searches should not include history.
@@ -1006,7 +1006,7 @@ class GetOldMessagesTest(ZulipTestCase):
         doing.
         """
 
-        realm = get_realm_by_string_id('zulip')
+        realm = get_realm('zulip')
         self.make_stream('web stuff')
         user_profile = get_user_profile_by_email("hamlet@zulip.com")
         user_profile.muted_topics = ujson.dumps([['Scotland', 'golf'], ['web stuff', 'css'], ['bogus', 'bogus']])
@@ -1042,7 +1042,7 @@ class GetOldMessagesTest(ZulipTestCase):
 
     def test_exclude_muting_conditions(self):
         # type: () -> None
-        realm = get_realm_by_string_id('zulip')
+        realm = get_realm('zulip')
         self.make_stream('web stuff')
         user_profile = get_user_profile_by_email("hamlet@zulip.com")
 
diff --git a/zerver/tests/test_realm_emoji.py b/zerver/tests/test_realm_emoji.py
index 0cae1ead8d..0f404eb4c2 100644
--- a/zerver/tests/test_realm_emoji.py
+++ b/zerver/tests/test_realm_emoji.py
@@ -1,7 +1,7 @@
 # -*- coding: utf-8 -*-
 from __future__ import absolute_import
 
-from zerver.lib.actions import get_realm_by_string_id, check_add_realm_emoji
+from zerver.lib.actions import get_realm, check_add_realm_emoji
 from zerver.lib.test_classes import ZulipTestCase
 from zerver.models import RealmEmoji
 import ujson
@@ -11,7 +11,7 @@ class RealmEmojiTest(ZulipTestCase):
     def test_list(self):
         # type: () -> None
         self.login("iago@zulip.com")
-        realm = get_realm_by_string_id('zulip')
+        realm = get_realm('zulip')
         check_add_realm_emoji(realm, "my_emoji", "https://example.com/my_emoji")
         result = self.client_get("/json/realm/emoji")
         self.assert_json_success(result)
@@ -22,7 +22,7 @@ class RealmEmojiTest(ZulipTestCase):
     def test_list_no_author(self):
         # type: () -> None
         self.login("iago@zulip.com")
-        realm = get_realm_by_string_id('zulip')
+        realm = get_realm('zulip')
         RealmEmoji.objects.create(realm=realm, name='my_emojy', img_url='https://example.com/my_emoji')
         result = self.client_get("/json/realm/emoji")
         self.assert_json_success(result)
@@ -33,7 +33,7 @@ class RealmEmojiTest(ZulipTestCase):
     def test_list_admins_only(self):
         # type: () -> None
         self.login('othello@zulip.com')
-        realm = get_realm_by_string_id('zulip')
+        realm = get_realm('zulip')
         realm.add_emoji_by_admins_only = True
         realm.save()
         check_add_realm_emoji(realm, "my_emoji", "https://example.com/my_emoji")
@@ -62,7 +62,7 @@ class RealmEmojiTest(ZulipTestCase):
         self.assertEqual(
             content["emoji"]['my_emoji']['author']['email'], email)
 
-        realm_emoji = RealmEmoji.objects.get(realm=get_realm_by_string_id('zulip'))
+        realm_emoji = RealmEmoji.objects.get(realm=get_realm('zulip'))
         self.assertEqual(
             str(realm_emoji),
             ''
@@ -78,7 +78,7 @@ class RealmEmojiTest(ZulipTestCase):
     def test_upload_admins_only(self):
         # type: () -> None
         self.login('othello@zulip.com')
-        realm = get_realm_by_string_id('zulip')
+        realm = get_realm('zulip')
         realm.add_emoji_by_admins_only = True
         realm.save()
         data = {"name": "my_emoji", "url": "https://example.com/my_emoji"}
@@ -88,7 +88,7 @@ class RealmEmojiTest(ZulipTestCase):
     def test_delete(self):
         # type: () -> None
         self.login("iago@zulip.com")
-        realm = get_realm_by_string_id('zulip')
+        realm = get_realm('zulip')
         check_add_realm_emoji(realm, "my_emoji", "https://example.com/my_emoji")
         result = self.client_delete("/json/realm/emoji/my_emoji")
         self.assert_json_success(result)
@@ -101,7 +101,7 @@ class RealmEmojiTest(ZulipTestCase):
     def test_delete_admins_only(self):
         # type: () -> None
         self.login('othello@zulip.com')
-        realm = get_realm_by_string_id('zulip')
+        realm = get_realm('zulip')
         realm.add_emoji_by_admins_only = True
         realm.save()
         check_add_realm_emoji(realm, "my_emoji", "https://example.com/my_emoji")
diff --git a/zerver/tests/test_realm_filters.py b/zerver/tests/test_realm_filters.py
index fa7a2c40a5..d82a8446ba 100644
--- a/zerver/tests/test_realm_filters.py
+++ b/zerver/tests/test_realm_filters.py
@@ -1,7 +1,7 @@
 # -*- coding: utf-8 -*-
 from __future__ import absolute_import
 
-from zerver.lib.actions import get_realm_by_string_id, do_add_realm_filter
+from zerver.lib.actions import get_realm, do_add_realm_filter
 from zerver.lib.test_classes import ZulipTestCase
 from zerver.models import RealmFilter
 import ujson
@@ -12,7 +12,7 @@ class RealmFilterTest(ZulipTestCase):
     def test_list(self):
         # type: () -> None
         self.login("iago@zulip.com")
-        realm = get_realm_by_string_id('zulip')
+        realm = get_realm('zulip')
         do_add_realm_filter(
             realm,
             "#(?P[123])",
@@ -58,7 +58,7 @@ class RealmFilterTest(ZulipTestCase):
     def test_delete(self):
         # type: () -> None
         self.login("iago@zulip.com")
-        realm = get_realm_by_string_id('zulip')
+        realm = get_realm('zulip')
         filter_id = do_add_realm_filter(
             realm,
             "#(?P[123])",
diff --git a/zerver/tests/test_signup.py b/zerver/tests/test_signup.py
index 3a40b5b454..76b38b7164 100644
--- a/zerver/tests/test_signup.py
+++ b/zerver/tests/test_signup.py
@@ -16,7 +16,7 @@ from zerver.forms import HomepageForm
 from zerver.views import do_change_password
 from zerver.views.invite import get_invitee_emails_set
 from zerver.models import (
-    get_realm_by_string_id, get_prereg_user_by_email, get_user_profile_by_email,
+    get_realm, get_prereg_user_by_email, get_user_profile_by_email,
     PreregistrationUser, Realm, RealmAlias, Recipient,
     Referral, ScheduledJob, UserProfile, UserMessage,
     Stream, Subscription, ScheduledJob
@@ -150,7 +150,7 @@ class AddNewUserHistoryTest(ZulipTestCase):
             "Denmark": {"description": "A Scandinavian country", "invite_only": False},
             "Verona": {"description": "A city in Italy", "invite_only": False}
         }  # type: Dict[Text, Dict[Text, Any]]
-        set_default_streams(get_realm_by_string_id("zulip"), stream_dict)
+        set_default_streams(get_realm("zulip"), stream_dict)
         with patch("zerver.lib.actions.add_new_user_history"):
             self.register("test", "test")
         user_profile = get_user_profile_by_email("test@zulip.com")
@@ -250,7 +250,7 @@ class LoginTest(ZulipTestCase):
 
     def test_register(self):
         # type: () -> None
-        realm = get_realm_by_string_id("zulip")
+        realm = get_realm("zulip")
         stream_dict = {"stream_"+str(i): {"description": "stream_%s_description" % i, "invite_only": False}
                        for i in range(40)}  # type: Dict[Text, Dict[Text, Any]]
         for stream_name in stream_dict.keys():
@@ -271,7 +271,7 @@ class LoginTest(ZulipTestCase):
         If you try to register for a deactivated realm, you get a clear error
         page.
         """
-        realm = get_realm_by_string_id("zulip")
+        realm = get_realm("zulip")
         realm.deactivated = True
         realm.save(update_fields=["deactivated"])
 
@@ -286,7 +286,7 @@ class LoginTest(ZulipTestCase):
         """
         If you try to log in to a deactivated realm, you get a clear error page.
         """
-        realm = get_realm_by_string_id("zulip")
+        realm = get_realm("zulip")
         realm.deactivated = True
         realm.save(update_fields=["deactivated"])
 
@@ -518,7 +518,7 @@ so we didn't send them an invitation. We did send invitations to everyone else!"
         In a realm with `restricted_to_domain = True`, you can't invite people
         with a different domain from that of the realm or your e-mail address.
         """
-        zulip_realm = get_realm_by_string_id("zulip")
+        zulip_realm = get_realm("zulip")
         zulip_realm.restricted_to_domain = True
         zulip_realm.save()
 
@@ -535,7 +535,7 @@ so we didn't send them an invitation. We did send invitations to everyone else!"
         In a realm with `restricted_to_domain = False`, you can invite people
         with a different domain from that of the realm or your e-mail address.
         """
-        zulip_realm = get_realm_by_string_id("zulip")
+        zulip_realm = get_realm("zulip")
         zulip_realm.restricted_to_domain = False
         zulip_realm.save()
 
@@ -736,7 +736,7 @@ class RealmCreationTest(ZulipTestCase):
         string_id = "zuliptest"
         domain = 'test.com'
         email = "user1@test.com"
-        realm = get_realm_by_string_id('test')
+        realm = get_realm('test')
 
         # Make sure the realm does not exist
         self.assertIsNone(realm)
@@ -760,7 +760,7 @@ class RealmCreationTest(ZulipTestCase):
             self.assertEqual(result.status_code, 302)
 
             # Make sure the realm is created
-            realm = get_realm_by_string_id(string_id)
+            realm = get_realm(string_id)
             self.assertIsNotNone(realm)
             self.assertEqual(realm.string_id, string_id)
             self.assertEqual(get_user_profile_by_email(email).realm, realm)
@@ -782,7 +782,7 @@ class RealmCreationTest(ZulipTestCase):
         realm_name = "Test"
 
         # Make sure the realm does not exist
-        self.assertIsNone(get_realm_by_string_id('test'))
+        self.assertIsNone(get_realm('test'))
 
         with self.settings(REALMS_HAVE_SUBDOMAINS=True), self.settings(OPEN_REALM_CREATION=True):
             # Create new realm with the email
@@ -806,7 +806,7 @@ class RealmCreationTest(ZulipTestCase):
             self.assertEqual(result.status_code, 302)
 
             # Make sure the realm is created
-            realm = get_realm_by_string_id(string_id)
+            realm = get_realm(string_id)
             self.assertIsNotNone(realm)
             self.assertEqual(realm.string_id, string_id)
             self.assertEqual(get_user_profile_by_email(email).realm, realm)
@@ -866,7 +866,7 @@ class UserSignUpTest(ZulipTestCase):
         username = "newguy"
         email = "newguy@zulip.com"
         password = "newpassword"
-        realm = get_realm_by_string_id('zulip')
+        realm = get_realm('zulip')
         domain = realm.domain
         do_set_realm_default_language(realm, "de")
 
@@ -899,12 +899,12 @@ class UserSignUpTest(ZulipTestCase):
         subdomain = "zulip"
         realm_name = "Zulip"
 
-        realm = get_realm_by_string_id('zulip')
+        realm = get_realm('zulip')
         realm.restricted_to_domain = False
         realm.invite_required = False
         realm.save()
 
-        realm = get_realm_by_string_id('mit')
+        realm = get_realm('mit')
         do_deactivate_realm(realm)
         realm.save()
 
@@ -946,7 +946,7 @@ class UserSignUpTest(ZulipTestCase):
         subdomain = "zulip"
         realm_name = "Zulip"
 
-        realm = get_realm_by_string_id('zulip')
+        realm = get_realm('zulip')
         realm.restricted_to_domain = False
         realm.invite_required = False
         realm.save()
@@ -983,7 +983,7 @@ class UserSignUpTest(ZulipTestCase):
 
     def test_failed_signup_due_to_restricted_domain(self):
         # type: () -> None
-        realm = get_realm_by_string_id('zulip')
+        realm = get_realm('zulip')
         with self.settings(REALMS_HAVE_SUBDOMAINS = True):
             request = HostRequestMock(host = realm.host)
             request.session = {} # type: ignore
@@ -992,7 +992,7 @@ class UserSignUpTest(ZulipTestCase):
 
     def test_failed_signup_due_to_invite_required(self):
         # type: () -> None
-        realm = get_realm_by_string_id('zulip')
+        realm = get_realm('zulip')
         realm.invite_required = True
         realm.save()
         request = HostRequestMock(host = realm.host)
diff --git a/zerver/tests/test_subs.py b/zerver/tests/test_subs.py
index e2da8cf94e..fc6f8a481d 100644
--- a/zerver/tests/test_subs.py
+++ b/zerver/tests/test_subs.py
@@ -38,7 +38,7 @@ from zerver.lib.actions import (
     do_add_default_stream, do_change_is_admin, do_set_realm_waiting_period_threshold,
     do_create_realm, do_remove_default_stream, do_set_realm_create_stream_by_admins_only,
     gather_subscriptions_helper, bulk_add_subscriptions, bulk_remove_subscriptions,
-    gather_subscriptions, get_default_streams_for_realm, get_realm_by_string_id, get_stream,
+    gather_subscriptions, get_default_streams_for_realm, get_realm, get_stream,
     get_user_profile_by_email, set_default_streams, get_subscription,
     create_streams_if_needed, active_user_ids
 )
@@ -59,7 +59,7 @@ class TestCreateStreams(ZulipTestCase):
         # type: () -> None
         stream_names = [u'new1', u'new2', u'new3']
         stream_descriptions = [u'des1', u'des2', u'des3']
-        realm = get_realm_by_string_id('zulip')
+        realm = get_realm('zulip')
 
         new_streams, existing_streams = create_streams_if_needed(
             realm,
@@ -98,7 +98,7 @@ class TestCreateStreams(ZulipTestCase):
 class RecipientTest(ZulipTestCase):
     def test_recipient(self):
         # type: () -> None
-        realm = get_realm_by_string_id('zulip')
+        realm = get_realm('zulip')
         stream = get_stream('Verona', realm)
         recipient = Recipient.objects.get(
             type_id=stream.id,
@@ -411,7 +411,7 @@ class StreamAdminTest(ZulipTestCase):
             self.assertEqual(deletion_events, [])
 
         with self.assertRaises(Stream.DoesNotExist):
-            Stream.objects.get(realm=get_realm_by_string_id("zulip"), name=active_name)
+            Stream.objects.get(realm=get_realm("zulip"), name=active_name)
 
         # A deleted stream's name is changed, is deactivated, is invite-only,
         # and has no subscribers.
@@ -688,7 +688,7 @@ class DefaultStreamTest(ZulipTestCase):
 
     def test_add_and_remove_default_stream(self):
         # type: () -> None
-        realm = get_realm_by_string_id("zulip")
+        realm = get_realm("zulip")
         orig_stream_names = self.get_default_stream_names(realm)
         do_add_default_stream(realm, 'Added Stream')
         new_stream_names = self.get_default_stream_names(realm)
@@ -1407,7 +1407,7 @@ class SubscriptionAPITest(ZulipTestCase):
         # type: () -> None
         email1 = 'cordelia@zulip.com'
         email2 = 'iago@zulip.com'
-        realm = get_realm_by_string_id("zulip")
+        realm = get_realm("zulip")
         streams_to_sub = ['multi_user_stream']
         events = [] # type: List[Dict[str, Any]]
         with tornado_redirected_to_list(events):
@@ -1604,7 +1604,7 @@ class SubscriptionAPITest(ZulipTestCase):
 
     def test_bulk_subscribe_MIT(self):
         # type: () -> None
-        realm = get_realm_by_string_id("mit")
+        realm = get_realm("mit")
         streams = ["stream_%s" % i for i in range(40)]
         for stream_name in streams:
             self.make_stream(stream_name, realm=realm)
@@ -2109,7 +2109,7 @@ class GetSubscribersTest(ZulipTestCase):
         """
         Check never_subscribed streams are fetched correctly and not include invite_only streams.
         """
-        realm = get_realm_by_string_id("zulip")
+        realm = get_realm("zulip")
         streams = ["stream_%s" % i for i in range(10)]
         for stream_name in streams:
             self.make_stream(stream_name, realm=realm)
diff --git a/zerver/tests/tests.py b/zerver/tests/tests.py
index 5627f7d5ae..465169759c 100644
--- a/zerver/tests/tests.py
+++ b/zerver/tests/tests.py
@@ -22,7 +22,7 @@ from zerver.forms import WRONG_SUBDOMAIN_ERROR
 
 from zerver.models import UserProfile, Recipient, \
     Realm, RealmAlias, UserActivity, \
-    get_user_profile_by_email, get_realm_by_string_id, get_realm_by_email_domain, \
+    get_user_profile_by_email, get_realm, get_realm_by_email_domain, \
     get_client, get_stream, Message, get_unique_open_realm, \
     completely_open, GetRealmByDomainException
 
@@ -114,15 +114,15 @@ class RealmTest(ZulipTestCase):
         cache, and we start by populating the cache for Hamlet, and we end
         by checking the cache to ensure that the new value is there."""
         get_user_profile_by_email('hamlet@zulip.com')
-        realm = get_realm_by_string_id('zulip')
+        realm = get_realm('zulip')
         new_name = 'Zed You Elle Eye Pea'
         do_set_realm_name(realm, new_name)
-        self.assertEqual(get_realm_by_string_id(realm.string_id).name, new_name)
+        self.assertEqual(get_realm(realm.string_id).name, new_name)
         self.assert_user_profile_cache_gets_new_name('hamlet@zulip.com', new_name)
 
     def test_do_set_realm_name_events(self):
         # type: () -> None
-        realm = get_realm_by_string_id('zulip')
+        realm = get_realm('zulip')
         new_name = 'Puliz'
         events = [] # type: List[Dict[str, Any]]
         with tornado_redirected_to_list(events):
@@ -146,7 +146,7 @@ class RealmTest(ZulipTestCase):
 
         def set_up_db(attr, value):
             # type: (str, Any) -> None
-            realm = get_realm_by_string_id('zulip')
+            realm = get_realm('zulip')
             setattr(realm, attr, value)
             realm.save()
 
@@ -155,7 +155,7 @@ class RealmTest(ZulipTestCase):
             params = {k: ujson.dumps(v) for k, v in kwarg.items()}
             result = self.client_patch('/json/realm', params)
             self.assert_json_success(result)
-            return get_realm_by_string_id('zulip') # refresh data
+            return get_realm('zulip') # refresh data
 
         # name
         realm = update_with_api(name=new_name)
@@ -231,7 +231,7 @@ class RealmTest(ZulipTestCase):
         realm appears to be deactivated.  You can make this test fail
         by disabling cache.flush_realm()."""
         get_user_profile_by_email('hamlet@zulip.com')
-        realm = get_realm_by_string_id('zulip')
+        realm = get_realm('zulip')
         do_deactivate_realm(realm)
         user = get_user_profile_by_email('hamlet@zulip.com')
         self.assertTrue(user.realm.deactivated)
@@ -239,7 +239,7 @@ class RealmTest(ZulipTestCase):
     def test_do_set_realm_default_language(self):
         # type: () -> None
         new_lang = "de"
-        realm = get_realm_by_string_id('zulip')
+        realm = get_realm('zulip')
         self.assertNotEqual(realm.default_language, new_lang)
         # we need an admin user.
         email = 'iago@zulip.com'
@@ -248,7 +248,7 @@ class RealmTest(ZulipTestCase):
         req = dict(default_language=ujson.dumps(new_lang))
         result = self.client_patch('/json/realm', req)
         self.assert_json_success(result)
-        realm = get_realm_by_string_id('zulip')
+        realm = get_realm('zulip')
         self.assertEqual(realm.default_language, new_lang)
 
         # Test setting zh_CN, we set zh_HANS instead of zh_CN in db
@@ -257,7 +257,7 @@ class RealmTest(ZulipTestCase):
         req = dict(default_language=ujson.dumps(chinese))
         result = self.client_patch('/json/realm', req)
         self.assert_json_success(result)
-        realm = get_realm_by_string_id('zulip')
+        realm = get_realm('zulip')
         self.assertEqual(realm.default_language, simplified_chinese)
 
         # Test to make sure that when invalid languages are passed
@@ -267,7 +267,7 @@ class RealmTest(ZulipTestCase):
         req = dict(default_language=ujson.dumps(invalid_lang))
         result = self.client_patch('/json/realm', req)
         self.assert_json_error(result, "Invalid language '%s'" % (invalid_lang,))
-        realm = get_realm_by_string_id('zulip')
+        realm = get_realm('zulip')
         self.assertNotEqual(realm.default_language, invalid_lang)
 
 
@@ -511,7 +511,7 @@ class AdminCreateUserTest(ZulipTestCase):
         self.assert_json_error(result,
                                "Email 'romeo@not-zulip.com' does not belong to domain 'zulip.com'")
 
-        RealmAlias.objects.create(realm=get_realm_by_string_id('zulip'), domain='zulip.net')
+        RealmAlias.objects.create(realm=get_realm('zulip'), domain='zulip.net')
 
         # HAPPY PATH STARTS HERE
         valid_params = dict(
@@ -2045,7 +2045,7 @@ class HomeTest(ZulipTestCase):
     def test_notifications_stream(self):
         # type: () -> None
         email = 'hamlet@zulip.com'
-        realm = get_realm_by_string_id('zulip')
+        realm = get_realm('zulip')
         realm.notifications_stream = get_stream('Denmark', realm)
         realm.save()
         self.login(email)
@@ -2288,7 +2288,7 @@ class TestMissedMessages(ZulipTestCase):
 class TestOpenRealms(ZulipTestCase):
     def test_open_realm_logic(self):
         # type: () -> None
-        mit_realm = get_realm_by_string_id("mit")
+        mit_realm = get_realm("mit")
         self.assertEqual(get_unique_open_realm(), None)
         mit_realm.restricted_to_domain = False
         mit_realm.save()
diff --git a/zerver/views/__init__.py b/zerver/views/__init__.py
index b2efc2e221..66535767cd 100644
--- a/zerver/views/__init__.py
+++ b/zerver/views/__init__.py
@@ -21,7 +21,7 @@ from zerver.models import Message, UserProfile, Stream, Subscription, Huddle, \
     PreregistrationUser, get_client, UserActivity, \
     get_stream, UserPresence, get_recipient, name_changes_disabled, email_to_username, \
     completely_open, get_unique_open_realm, email_allowed_for_realm, \
-    get_realm_by_string_id, get_realm_by_email_domain, list_of_domains_for_realm
+    get_realm, get_realm_by_email_domain, list_of_domains_for_realm
 from zerver.lib.actions import do_change_password, do_change_full_name, do_change_is_admin, \
     do_activate_user, do_create_user, do_create_realm, set_default_streams, \
     update_user_presence, do_events_register, \
@@ -114,7 +114,7 @@ def accounts_register(request):
         # For creating a new realm, there is no existing realm or domain
         realm = None
     elif settings.REALMS_HAVE_SUBDOMAINS:
-        realm = get_realm_by_string_id(get_subdomain(request))
+        realm = get_realm(get_subdomain(request))
     else:
         realm = get_realm_by_email_domain(email)
 
@@ -303,14 +303,14 @@ def create_preregistration_user(email, request, realm_creation=False):
         # The user is trying to sign up for a completely open realm,
         # so create them a PreregistrationUser for that realm
         return PreregistrationUser.objects.create(email=email,
-                                                  realm=get_realm_by_string_id(realm_str),
+                                                  realm=get_realm(realm_str),
                                                   realm_creation=realm_creation)
 
     return PreregistrationUser.objects.create(email=email, realm_creation=realm_creation)
 
 def accounts_home_with_realm_str(request, realm_str):
     # type: (HttpRequest, str) -> HttpResponse
-    if not settings.REALMS_HAVE_SUBDOMAINS and completely_open(get_realm_by_string_id(realm_str)):
+    if not settings.REALMS_HAVE_SUBDOMAINS and completely_open(get_realm(realm_str)):
         # You can sign up for a completely open realm through a
         # special registration path that contains the domain in the
         # URL. We store this information in the session rather than
@@ -385,7 +385,7 @@ def get_realm_from_request(request):
         realm_str = get_subdomain(request)
     else:
         realm_str = request.session.get("realm_str")
-    return get_realm_by_string_id(realm_str)
+    return get_realm(realm_str)
 
 def accounts_home(request):
     # type: (HttpRequest) -> HttpResponse
diff --git a/zerver/views/messages.py b/zerver/views/messages.py
index e17355f571..cbc7982741 100644
--- a/zerver/views/messages.py
+++ b/zerver/views/messages.py
@@ -42,7 +42,7 @@ from zerver.models import Message, UserProfile, Stream, Subscription, \
     Realm, RealmAlias, Recipient, UserMessage, bulk_get_recipients, get_recipient, \
     get_user_profile_by_email, get_stream, \
     parse_usermessage_flags, \
-    email_to_domain, get_realm_by_string_id, get_active_streams, \
+    email_to_domain, get_realm, get_active_streams, \
     bulk_get_streams, get_user_profile_by_id
 
 from sqlalchemy import func
@@ -813,7 +813,7 @@ def send_message_backend(request, user_profile,
             # The email gateway bot needs to be able to send messages in
             # any realm.
             return json_error(_("User not authorized for this query"))
-        realm = get_realm_by_string_id(realm_str)
+        realm = get_realm(realm_str)
         if not realm:
             return json_error(_("Unknown realm %s") % (realm_str,))
 
diff --git a/zilencer/management/commands/create_deployment.py b/zilencer/management/commands/create_deployment.py
index 7c34ac2741..5e1e25db19 100644
--- a/zilencer/management/commands/create_deployment.py
+++ b/zilencer/management/commands/create_deployment.py
@@ -7,7 +7,7 @@ from typing import Any
 
 from django.core.management.base import BaseCommand, CommandParser
 
-from zerver.models import get_realm_by_string_id
+from zerver.models import get_realm
 from zerver.lib.create_user import random_api_key
 from zerver.management.commands.create_realm import Command as CreateRealm
 
@@ -40,7 +40,7 @@ class Command(BaseCommand):
             CreateRealm().handle(*args, **options)
             print() # Newline
 
-        realm = get_realm_by_string_id(options["string_id"])
+        realm = get_realm(options["string_id"])
         if realm is None:
             print("\033[1;31mRealm does not exist!\033[0m\n", file=sys.stderr)
             exit(2)
diff --git a/zilencer/management/commands/populate_db.py b/zilencer/management/commands/populate_db.py
index 6ae0681f9b..127289ccec 100644
--- a/zilencer/management/commands/populate_db.py
+++ b/zilencer/management/commands/populate_db.py
@@ -15,7 +15,7 @@ from django.conf import settings
 from zerver.lib.bulk_create import bulk_create_realms, \
     bulk_create_streams, bulk_create_users, bulk_create_huddles, \
     bulk_create_clients
-from zerver.models import DefaultStream, get_stream, get_realm_by_string_id
+from zerver.models import DefaultStream, get_stream, get_realm
 from zilencer.models import Deployment
 
 import random
@@ -171,7 +171,7 @@ class Command(BaseCommand):
                     subscriptions_to_add.append(s)
             Subscription.objects.bulk_create(subscriptions_to_add)
         else:
-            zulip_realm = get_realm_by_string_id("zulip")
+            zulip_realm = get_realm("zulip")
             recipient_streams = [klass.type_id for klass in
                                  Recipient.objects.filter(type=Recipient.STREAM)]
 
diff --git a/zilencer/views.py b/zilencer/views.py
index 9d1e388e10..33a7003fd0 100644
--- a/zilencer/views.py
+++ b/zilencer/views.py
@@ -13,7 +13,7 @@ from zerver.lib.actions import internal_send_message
 from zerver.lib.redis_utils import get_redis_client
 from zerver.lib.response import json_success, json_error, json_response
 from zerver.lib.validator import check_dict
-from zerver.models import get_realm_by_string_id, get_user_profile_by_email, \
+from zerver.models import get_realm, get_user_profile_by_email, \
     get_realm_by_email_domain, UserProfile, Realm
 from .error_notify import notify_server_error, notify_browser_error
 
@@ -49,7 +49,7 @@ def get_ticket_number():
 def submit_feedback(request, deployment, message=REQ(validator=check_dict([]))):
     # type: (HttpRequest, Deployment, Dict[str, Text]) -> HttpResponse
     domainish = message["sender_domain"]
-    if get_realm_by_string_id("zulip") not in deployment.realms.all():
+    if get_realm("zulip") not in deployment.realms.all():
         domainish += u" via " + deployment.name
     subject = "%s" % (message["sender_email"],)