def test_dump_into_db(self): settings.session_valid_minutes = 1 self.create_actor_env() sess_id = self.login_actor() sess_db = self.get_session(sess_id) # updating session in cache by making request sleep(1) req = {'session_id': sess_id} resp = self.get_api_scheme(**req) self.check_response_ok(resp) # checking update_date difference between cached and stored sessions sess_cache = self.mem_cache.get(sess_id.encode('utf8')) self.assertTrue(sess_cache.update_date > sess_db.update_date) # checking update_date equal in cached and stored sessions dump_into_db(transaction) sess_db = self.get_session(sess_id) self.assertEquals(sess_cache.update_date, sess_db.update_date)
def test_dump_removed_session(self): settings.session_valid_minutes = 1.0 / 60 self.create_actor_env() sess_id = self.login_actor() self._remove_session(sess_id) # session removed from db self.assertRaises(SessionNotFound, self.get_session, sess_id) # session exists in memcache sess_cache = self.mem_cache.get(sess_id.encode('utf8')) self.assertNotEqual(None, sess_cache) # dumping removed session dump_into_db(transaction) # session expiration pause sleep(settings.session_valid_minutes * 60) # checking results # session removed from db self.assertRaises(SessionNotFound, self.get_session, sess_id) # session not exists in memcache sess_cache = self.mem_cache.get(sess_id.encode('utf8')) self.assertEqual(None, sess_cache)
def run(): while True: dump_into_db(transaction) logger.debug('Sleeping %s minutes', settings.session_dump_to_db_minutes) sleep(settings.session_dump_to_db_minutes * 60)