2019-07-13 00:11:58 +02:00
|
|
|
from django.conf import settings
|
|
|
|
|
2018-05-14 18:48:18 +02:00
|
|
|
from mock import Mock, patch
|
|
|
|
|
|
|
|
from zerver.apps import flush_cache
|
|
|
|
from zerver.lib.test_classes import ZulipTestCase
|
2019-07-13 00:11:58 +02:00
|
|
|
from zerver.models import get_system_bot, get_user_profile_by_email
|
2018-05-14 18:48:18 +02:00
|
|
|
|
|
|
|
class AppsTest(ZulipTestCase):
|
|
|
|
def test_cache_gets_flushed(self) -> None:
|
|
|
|
with patch('zerver.apps.logging.info') as mock_logging:
|
|
|
|
with patch('zerver.apps.cache.clear') as mock:
|
|
|
|
# The argument to flush_cache doesn't matter
|
|
|
|
flush_cache(Mock())
|
|
|
|
mock.assert_called_once()
|
|
|
|
mock_logging.assert_called_once()
|
2019-07-13 00:11:58 +02:00
|
|
|
|
|
|
|
class BotCacheKeyTest(ZulipTestCase):
|
|
|
|
def test_bot_profile_key_deleted_on_save(self) -> None:
|
|
|
|
# Get the profile cached on both cache keys:
|
|
|
|
user_profile = get_user_profile_by_email(settings.EMAIL_GATEWAY_BOT)
|
|
|
|
bot_profile = get_system_bot(settings.EMAIL_GATEWAY_BOT)
|
|
|
|
self.assertEqual(user_profile, bot_profile)
|
|
|
|
|
|
|
|
# Flip the setting and save:
|
|
|
|
flipped_setting = not bot_profile.is_api_super_user
|
|
|
|
bot_profile.is_api_super_user = flipped_setting
|
|
|
|
bot_profile.save()
|
|
|
|
|
|
|
|
# The .save() should have deleted cache keys, so if we fetch again,
|
|
|
|
# the returned objects should have is_api_super_user set correctly.
|
|
|
|
bot_profile2 = get_system_bot(settings.EMAIL_GATEWAY_BOT)
|
|
|
|
self.assertEqual(bot_profile2.is_api_super_user, flipped_setting)
|
|
|
|
|
|
|
|
user_profile2 = get_user_profile_by_email(settings.EMAIL_GATEWAY_BOT)
|
|
|
|
self.assertEqual(user_profile2.is_api_super_user, flipped_setting)
|