def test_cache_memoize_custom_alias(): calls_made = [] def runmeonce(a): calls_made.append(a) return a * 2 runmeonce_default = cache_memoize(10)(runmeonce) runmeonce_locmem = cache_memoize(10, cache_alias="other")(runmeonce) runmeonce_default(10) assert len(calls_made) == 1 runmeonce_default(10) assert len(calls_made) == 1 runmeonce_locmem(10) assert len(calls_made) == 2 runmeonce_locmem(10) assert len(calls_made) == 2
FeedItem, Profile, ShortCode, NoLocation, ) class MyClient(Client): @staticmethod def _extract_rhx_gis(html): options = string.ascii_lowercase + string.digits text = ''.join([random.choice(options) for _ in range(8)]) return hashlib.md5(text.encode()).hexdigest() web_api = MyClient(auto_patch=True, drop_incompat_keys=False) web_api.user_info = cache_memoize(3600)(web_api.user_info) web_api.user_feed = cache_memoize(3600)(web_api.user_feed) web_api.location_feed = cache_memoize(3600)(web_api.location_feed) web_api.media_info2 = cache_memoize(3600)(web_api.media_info2) def catch_keyerrors(fn): @functools.wraps(fn) def wrapped(*args, **kwargs): try: return fn(*args, **kwargs) except KeyError: raise return wrapped