mirror of
https://github.com/zulip/zulip.git
synced 2025-11-12 18:06:44 +00:00
Add simulated_empty_cache() test decorator
(imported from commit 2dd03a522f9ee01a802c8e5ff4116db04763ed35)
This commit is contained in:
@@ -22,6 +22,7 @@ from zerver.lib.actions import check_send_message, gather_subscriptions, \
|
||||
set_default_streams
|
||||
from zerver.lib.rate_limiter import add_ratelimit_rule, remove_ratelimit_rule
|
||||
from zerver.lib import bugdown
|
||||
from zerver.lib import cache
|
||||
from zerver.lib.cache import bounce_key_prefix_for_testing
|
||||
from zerver.lib.rate_limiter import clear_user_history
|
||||
from zerver.lib.alert_words import alert_words_in_realm, user_alert_words, \
|
||||
@@ -54,6 +55,25 @@ def tornado_redirected_to_list(lst):
|
||||
yield
|
||||
tornado_callbacks.process_event = real_tornado_callbacks_process_event
|
||||
|
||||
@contextmanager
|
||||
def simulated_empty_cache():
|
||||
cache_queries = []
|
||||
def my_cache_get(key, cache_name=None):
|
||||
cache_queries.append(('get', key, cache_name))
|
||||
return None
|
||||
|
||||
def my_cache_get_many(keys, cache_name=None):
|
||||
cache_queries.append(('getmany', keys, cache_name))
|
||||
return None
|
||||
|
||||
old_get = cache.cache_get
|
||||
old_get_many = cache.cache_get_many
|
||||
cache.cache_get = my_cache_get
|
||||
cache.cache_get_many = my_cache_get_many
|
||||
yield cache_queries
|
||||
cache.cache_get = old_get
|
||||
cache.cache_get_many = old_get_many
|
||||
|
||||
@contextmanager
|
||||
def queries_captured():
|
||||
'''
|
||||
@@ -2305,6 +2325,15 @@ class GetProfileTest(AuthedTestCase):
|
||||
self.assertEqual(json["max_message_id"], max_id)
|
||||
return json
|
||||
|
||||
def test_cache_behavior(self):
|
||||
with queries_captured() as queries:
|
||||
with simulated_empty_cache() as cache_queries:
|
||||
user_profile = get_user_profile_by_email('hamlet@zulip.com')
|
||||
|
||||
self.assertEqual(len(queries), 1)
|
||||
self.assertEqual(len(cache_queries), 1)
|
||||
self.assertEqual(user_profile.email, 'hamlet@zulip.com')
|
||||
|
||||
def test_api_get_empty_profile(self):
|
||||
"""
|
||||
Ensure get_profile returns a max message id and returns successfully
|
||||
|
||||
Reference in New Issue
Block a user