diff --git a/zerver/models.py b/zerver/models.py index 991797e356..c98598783f 100644 --- a/zerver/models.py +++ b/zerver/models.py @@ -246,9 +246,7 @@ class Realm(ModelReprMixin, models.Model): # type: () -> str # Remove the port. Mainly needed for development environment. external_host = settings.EXTERNAL_HOST.split(':')[0] - if settings.REALMS_HAVE_SUBDOMAINS or \ - Realm.objects.filter(deactivated=False) \ - .exclude(string_id__in=settings.SYSTEM_ONLY_REALMS).count() > 1: + if self.subdomain not in [None, ""]: return "%s.%s" % (self.string_id, external_host) return external_host diff --git a/zerver/tests/test_bots.py b/zerver/tests/test_bots.py index 5d34dc6b7b..dec2beee65 100644 --- a/zerver/tests/test_bots.py +++ b/zerver/tests/test_bots.py @@ -28,6 +28,7 @@ class BotTest(ZulipTestCase, UploadSerializeMixin): self.assert_json_success(result) self.assertEqual(count, len(result.json()['bots'])) + @override_settings(REALMS_HAVE_SUBDOMAINS=True) def create_bot(self, **extras): # type: (**Any) -> Dict[str, Any] bot_info = { @@ -135,6 +136,7 @@ class BotTest(ZulipTestCase, UploadSerializeMixin): self.assertEqual(bot['bot_owner'], self.example_email('hamlet')) self.assertEqual(bot['user_id'], get_user(email, realm).id) + @override_settings(REALMS_HAVE_SUBDOMAINS=True) def test_add_bot_with_username_in_use(self): # type: () -> None self.login(self.example_email('hamlet')) @@ -167,6 +169,7 @@ class BotTest(ZulipTestCase, UploadSerializeMixin): self.assertEqual(profile.avatar_source, UserProfile.AVATAR_FROM_USER) self.assertTrue(os.path.exists(avatar_disk_path(profile))) + @override_settings(REALMS_HAVE_SUBDOMAINS=True) def test_add_bot_with_too_many_files(self): # type: () -> None self.login(self.example_email('hamlet')) @@ -296,6 +299,7 @@ class BotTest(ZulipTestCase, UploadSerializeMixin): ) self.assertEqual(event['users'], {user_profile.id, }) + @override_settings(REALMS_HAVE_SUBDOMAINS=True) def test_add_bot_with_default_sending_stream_private_denied(self): # type: () -> None self.login(self.example_email('hamlet')) @@ -366,6 +370,7 @@ class BotTest(ZulipTestCase, UploadSerializeMixin): ) self.assertEqual(event['users'], {user_profile.id, }) + @override_settings(REALMS_HAVE_SUBDOMAINS=True) def test_add_bot_with_default_events_register_stream_private_denied(self): # type: () -> None self.login(self.example_email('hamlet')) @@ -516,6 +521,7 @@ class BotTest(ZulipTestCase, UploadSerializeMixin): profile = get_user(bot_email, bot_realm) self.assertEqual(profile.bot_type, UserProfile.INCOMING_WEBHOOK_BOT) + @override_settings(REALMS_HAVE_SUBDOMAINS=True) def test_add_bot_with_bot_type_invalid(self): # type: () -> None bot_info = { @@ -530,6 +536,7 @@ class BotTest(ZulipTestCase, UploadSerializeMixin): self.assert_num_bots_equal(0) self.assert_json_error(result, 'Invalid bot type') + @override_settings(REALMS_HAVE_SUBDOMAINS=True) def test_patch_bot_full_name(self): # type: () -> None self.login(self.example_email('hamlet')) @@ -550,6 +557,7 @@ class BotTest(ZulipTestCase, UploadSerializeMixin): bot = self.get_bot() self.assertEqual('Fred', bot['full_name']) + @override_settings(REALMS_HAVE_SUBDOMAINS=True) def test_patch_bot_owner(self): # type: () -> None self.login(self.example_email('hamlet')) @@ -572,6 +580,7 @@ class BotTest(ZulipTestCase, UploadSerializeMixin): bot = self.get_bot() self.assertEqual('The Bot of Hamlet', bot['full_name']) + @override_settings(REALMS_HAVE_SUBDOMAINS=True) @override_settings(LOCAL_UPLOADS_DIR='var/bot_avatar') def test_patch_bot_avatar(self): # type: () -> None @@ -615,6 +624,7 @@ class BotTest(ZulipTestCase, UploadSerializeMixin): self.assertEqual(profile.avatar_source, UserProfile.AVATAR_FROM_USER) self.assertTrue(os.path.exists(avatar_disk_path(profile))) + @override_settings(REALMS_HAVE_SUBDOMAINS=True) def test_patch_bot_to_stream(self): # type: () -> None self.login(self.example_email('hamlet')) @@ -635,6 +645,7 @@ class BotTest(ZulipTestCase, UploadSerializeMixin): bot = self.get_bot() self.assertEqual('Denmark', bot['default_sending_stream']) + @override_settings(REALMS_HAVE_SUBDOMAINS=True) def test_patch_bot_to_stream_not_subscribed(self): # type: () -> None self.login(self.example_email('hamlet')) @@ -655,6 +666,7 @@ class BotTest(ZulipTestCase, UploadSerializeMixin): bot = self.get_bot() self.assertEqual('Rome', bot['default_sending_stream']) + @override_settings(REALMS_HAVE_SUBDOMAINS=True) def test_patch_bot_to_stream_none(self): # type: () -> None self.login(self.example_email('hamlet')) @@ -678,6 +690,7 @@ class BotTest(ZulipTestCase, UploadSerializeMixin): bot = self.get_bot() self.assertEqual(None, bot['default_sending_stream']) + @override_settings(REALMS_HAVE_SUBDOMAINS=True) def test_patch_bot_to_stream_private_allowed(self): # type: () -> None self.login(self.example_email('hamlet')) @@ -703,6 +716,7 @@ class BotTest(ZulipTestCase, UploadSerializeMixin): bot = self.get_bot() self.assertEqual('Denmark', bot['default_sending_stream']) + @override_settings(REALMS_HAVE_SUBDOMAINS=True) def test_patch_bot_to_stream_private_denied(self): # type: () -> None self.login(self.example_email('hamlet')) @@ -724,6 +738,7 @@ class BotTest(ZulipTestCase, UploadSerializeMixin): result = self.client_patch("/json/bots/hambot-bot@zulip.testserver", bot_info) self.assert_json_error(result, "Invalid stream name 'Denmark'") + @override_settings(REALMS_HAVE_SUBDOMAINS=True) def test_patch_bot_to_stream_not_found(self): # type: () -> None self.login(self.example_email('hamlet')) @@ -739,6 +754,7 @@ class BotTest(ZulipTestCase, UploadSerializeMixin): result = self.client_patch("/json/bots/hambot-bot@zulip.testserver", bot_info) self.assert_json_error(result, "Invalid stream name 'missing'") + @override_settings(REALMS_HAVE_SUBDOMAINS=True) def test_patch_bot_events_register_stream(self): # type: () -> None self.login(self.example_email('hamlet')) @@ -759,6 +775,7 @@ class BotTest(ZulipTestCase, UploadSerializeMixin): bot = self.get_bot() self.assertEqual('Denmark', bot['default_events_register_stream']) + @override_settings(REALMS_HAVE_SUBDOMAINS=True) def test_patch_bot_events_register_stream_allowed(self): # type: () -> None self.login(self.example_email('hamlet')) @@ -783,6 +800,7 @@ class BotTest(ZulipTestCase, UploadSerializeMixin): bot = self.get_bot() self.assertEqual('Denmark', bot['default_events_register_stream']) + @override_settings(REALMS_HAVE_SUBDOMAINS=True) def test_patch_bot_events_register_stream_denied(self): # type: () -> None self.login(self.example_email('hamlet')) @@ -803,6 +821,7 @@ class BotTest(ZulipTestCase, UploadSerializeMixin): result = self.client_patch("/json/bots/hambot-bot@zulip.testserver", bot_info) self.assert_json_error(result, "Invalid stream name 'Denmark'") + @override_settings(REALMS_HAVE_SUBDOMAINS=True) def test_patch_bot_events_register_stream_none(self): # type: () -> None self.login(self.example_email('hamlet')) @@ -826,6 +845,7 @@ class BotTest(ZulipTestCase, UploadSerializeMixin): bot = self.get_bot() self.assertEqual(None, bot['default_events_register_stream']) + @override_settings(REALMS_HAVE_SUBDOMAINS=True) def test_patch_bot_events_register_stream_not_found(self): # type: () -> None self.login(self.example_email('hamlet')) @@ -841,6 +861,7 @@ class BotTest(ZulipTestCase, UploadSerializeMixin): result = self.client_patch("/json/bots/hambot-bot@zulip.testserver", bot_info) self.assert_json_error(result, "Invalid stream name 'missing'") + @override_settings(REALMS_HAVE_SUBDOMAINS=True) def test_patch_bot_default_all_public_streams_true(self): # type: () -> None self.login(self.example_email('hamlet')) @@ -861,6 +882,7 @@ class BotTest(ZulipTestCase, UploadSerializeMixin): bot = self.get_bot() self.assertEqual(bot['default_all_public_streams'], True) + @override_settings(REALMS_HAVE_SUBDOMAINS=True) def test_patch_bot_default_all_public_streams_false(self): # type: () -> None self.login(self.example_email('hamlet')) @@ -881,6 +903,7 @@ class BotTest(ZulipTestCase, UploadSerializeMixin): bot = self.get_bot() self.assertEqual(bot['default_all_public_streams'], False) + @override_settings(REALMS_HAVE_SUBDOMAINS=True) def test_patch_bot_via_post(self): # type: () -> None self.login(self.example_email('hamlet')) @@ -902,6 +925,7 @@ class BotTest(ZulipTestCase, UploadSerializeMixin): bot = self.get_bot() self.assertEqual('Fred', bot['full_name']) + @override_settings(REALMS_HAVE_SUBDOMAINS=True) def test_patch_bogus_bot(self): # type: () -> None """Deleting a bogus bot will succeed silently.""" @@ -914,6 +938,7 @@ class BotTest(ZulipTestCase, UploadSerializeMixin): self.assert_json_error(result, 'No such user') self.assert_num_bots_equal(1) + @override_settings(REALMS_HAVE_SUBDOMAINS=True) def test_create_outgoing_webhook_bot(self, **extras): # type: (**Any) -> None self.login(self.example_email('hamlet')) @@ -943,6 +968,7 @@ class BotTest(ZulipTestCase, UploadSerializeMixin): result = self.client_post("/json/bots", bot_info) self.assert_json_error(result, "Enter a valid URL.") + @override_settings(REALMS_HAVE_SUBDOMAINS=True) def test_get_bot_handler(self): # type: () -> None # Test for valid service. @@ -966,6 +992,7 @@ class BotTest(ZulipTestCase, UploadSerializeMixin): bot_handler_class_name = class_bot_handler.format(name=bot_name, Name=bot_name.title()) self.assertEqual(str(type(embedded_bot_handler)), bot_handler_class_name) + @override_settings(REALMS_HAVE_SUBDOMAINS=True) def test_outgoing_webhook_interface_type(self): # type: () -> None self.login(self.example_email('hamlet')) diff --git a/zerver/tests/test_home.py b/zerver/tests/test_home.py index 0b48579d61..fdb3942a8c 100644 --- a/zerver/tests/test_home.py +++ b/zerver/tests/test_home.py @@ -6,6 +6,7 @@ import os import ujson from django.http import HttpResponse +from django.test import override_settings from mock import MagicMock, patch from six.moves import urllib from typing import Any, Dict, List @@ -22,6 +23,7 @@ from zerver.models import ( from zerver.views.home import home, sent_time_in_epoch_seconds class HomeTest(ZulipTestCase): + @override_settings(REALMS_HAVE_SUBDOMAINS=True) @slow('big method') def test_home(self): # type: () -> None diff --git a/zerver/tests/test_messages.py b/zerver/tests/test_messages.py index 7052f13a77..5c13f4d36d 100644 --- a/zerver/tests/test_messages.py +++ b/zerver/tests/test_messages.py @@ -1223,6 +1223,7 @@ class MessagePOSTTest(ZulipTestCase): "to": email}, name='gownooo') self.assert_json_error(result, "Invalid mirrored realm") + @override_settings(REALMS_HAVE_SUBDOMAINS=True) def test_send_message_irc_mirror(self): # type: () -> None self.login(self.example_email('hamlet'))