def test_wont_fetch_unless_recent_or_expiring(self): metadata = VimeoMetadata('123') metadata._fetch_and_save_data() store.maybe_fetch_metadata('123') self.assertFalse(self.calls) rc.conn.expire(metadata.key, 3599) store.maybe_fetch_metadata('123') self.assertTrue(self.calls.pop())
def test_permitted_user(self): banned_user = '******' api.BANNED_UPLOADERS = set([banned_user]) self.banned_vid = VimeoMetadata('123') self.banned_vid._populate({'user_name': banned_user}) self.assertFalse(permitted_user(self.banned_vid)) self.normal_vid = VimeoMetadata('234') self.normal_vid._populate({'user_name': 'normal dude'}) self.assertTrue(permitted_user(self.normal_vid))
def popular(): return_value = rc.conn.get(CACHE_KEY) if not return_value: videos = VimeoMetadata.load_multiple([id for id, _ in top_scoring()]) videos = filter(permitted_user, videos)[:15] videos_data = [video.__dict__ for video in videos] return_value = json.dumps(videos_data) rc.conn.set(CACHE_KEY, return_value) rc.conn.expire(CACHE_KEY, CACHE_TTL) return return_value
class VimeoMetaDataTests(RedisTestCase): def setUp(self): super(VimeoMetaDataTests, self).setUp() self.metadata = VimeoMetadata('123') store.vimeo.vimeo_data = lambda x: {'somekey': 'value'} def test_present(self): self.assertFalse(self.metadata.present()) self.metadata._fetch_and_save_data() self.assertTrue(self.metadata.present()) def test_needs_refresh(self): self.metadata._fetch_and_save_data() self.assertFalse(self.metadata.needs_refresh()) rc.conn.expire(self.metadata.key, 3599) self.assertTrue(self.metadata.needs_refresh())
def setUp(self): super(VimeoMetaDataTests, self).setUp() self.metadata = VimeoMetadata('123') store.vimeo.vimeo_data = lambda x: {'somekey': 'value'}