def getAnonymousSession( self , key = None ): """ @return: an anonymous session. If key is None create a new anonymous session @rtype: Session object @param key: the key to identify a anonymous session @type key: string @raise SessionError: if key is specified and doesn't match any session. """ anonymousSessionAllowed = self.cfg.anonymousSession() if anonymousSessionAllowed== 'no': self.log.error("SessionFactory/can't create anonymous session ANONYMOUS_SESSION is set to \"no\" in Local/Config/Config.py") raise SessionError , "can't create anonymous session: permission denied" try: session = self.__sessions[ key ] except KeyError: if key : sessionDir = self.__getSessionDir( key ) if os.path.exists( sessionDir ): self.log.debug( "SessionFactory.getAnonymousSession( key= %s )/ the dir exist I 'll return this session" % key) session = AnonymousSession( self.cfg , key ) else: self.log.error( "can't retrieve anonymous session, the Key: %s doesn't match with any Session" % key ) raise SessionError , "wrong Key: %s" % key else: #new session session = AnonymousSession( self.cfg ) self.log.debug( "SessionFactory.getAnonymousSession( key= %s ) / a new anonymous has been created . I 'll return this session" % key) self.__sessions[session.getKey()] = session self.log.debug( "SessionFactory.getAnonymousSession( key= %s ) I return this anonymous session :key=" + str( session.getKey() )) return session
def testAnonymousSession(self): ## Create a new session session = AnonymousSession(self.cfg) ## Fetch an existing session session_key = session.getKey() session = AnonymousSession(self.cfg, session_key) self.assertEqual(session.getKey(), session_key) ## Creation should fail if missing shutil.rmtree(session.getDir()) self.assertRaises(MobyleError, AnonymousSession, self.cfg, session_key) ## Creation should fail if disabled self.cfg._anonymous_session = "no" self.assertRaises(MobyleError, AnonymousSession, self.cfg)
def testMergeWith(self): ## Create an authenticated session auth_session = AuthenticatedSession(self.cfg, self.email, passwd=self.passwd) ## Merging a session with itself should fail self.assertRaises(SessionError, auth_session.mergeWith, auth_session) ## Create an anonymous session self.cfg._anonymous_session = "yes" key = "anonymous_01" self._makeFakeSession(key) anno_session = AnonymousSession(self.cfg, key=key) jobs = anno_session.getAllJobs() datas = anno_session.getAllData() ## Merge sessions auth_session.mergeWith(anno_session) newJobs = auth_session.getAllJobs() newDatas = auth_session.getAllData() self.assertEqual(jobs, newJobs) self.assertEqual(datas, newDatas)
def testisAuthenticated(self): session = AnonymousSession(self.cfg) self.assertFalse(session.isAuthenticated())