diff --git a/zerver/lib/management.py b/zerver/lib/management.py index bc2d4e6978..3db75e5ddd 100644 --- a/zerver/lib/management.py +++ b/zerver/lib/management.py @@ -8,7 +8,7 @@ from django.core.exceptions import MultipleObjectsReturned from django.core.management.base import BaseCommand, CommandError from typing import Any, Dict, Optional, List -from zerver.models import Realm, UserProfile +from zerver.models import Realm, UserProfile, Client, get_client def is_integer_string(val: str) -> bool: try: @@ -120,3 +120,7 @@ You can use the command list_realms to find ID of the realms in this server.""" "to specify which one to modify.") except UserProfile.DoesNotExist: raise CommandError("This Zulip server does not contain a user with email '%s'" % (email,)) + + def get_client(self) -> Client: + """Returns a Zulip Client object to be used for things done in management commands""" + return get_client("ZulipServer") diff --git a/zerver/tests/test_management_commands.py b/zerver/tests/test_management_commands.py index c42e962496..167d7633cb 100644 --- a/zerver/tests/test_management_commands.py +++ b/zerver/tests/test_management_commands.py @@ -38,6 +38,9 @@ class TestZulipBaseCommand(ZulipTestCase): self.zulip_realm = get_realm("zulip") self.command = ZulipBaseCommand() + def test_get_client(self) -> None: + self.assertEqual(self.command.get_client().name, "ZulipServer") + def test_get_realm(self) -> None: self.assertEqual(self.command.get_realm(dict(realm_id='zulip')), self.zulip_realm) self.assertEqual(self.command.get_realm(dict(realm_id=None)), None)