예제 #1
0
파일: test.py 프로젝트: antonpaquin/hydrus
 def __init__( self ):
     
     self.db_dir = tempfile.mkdtemp()
     
     TestConstants.DB_DIR = self.db_dir
     
     self._server_files_dir = os.path.join( self.db_dir, 'server_files' )
     self._updates_dir = os.path.join( self.db_dir, 'test_updates' )
     
     client_files_default = os.path.join( self.db_dir, 'client_files' )
     
     HydrusPaths.MakeSureDirectoryExists( self._server_files_dir )
     HydrusPaths.MakeSureDirectoryExists( self._updates_dir )
     HydrusPaths.MakeSureDirectoryExists( client_files_default )
     
     HG.controller = self
     HG.client_controller = self
     HG.server_controller = self
     HG.test_controller = self
     
     self.gui = self
     
     self._call_to_threads = []
     
     self._pubsub = HydrusPubSub.HydrusPubSub( self )
     
     self.new_options = ClientOptions.ClientOptions( self.db_dir )
     
     HC.options = ClientDefaults.GetClientDefaultOptions()
     
     self.options = HC.options
     
     def show_text( text ): pass
     
     HydrusData.ShowText = show_text
     
     self._reads = {}
     
     self._reads[ 'hydrus_sessions' ] = []
     self._reads[ 'local_booru_share_keys' ] = []
     self._reads[ 'messaging_sessions' ] = []
     self._reads[ 'tag_censorship' ] = []
     self._reads[ 'options' ] = ClientDefaults.GetClientDefaultOptions()
     self._reads[ 'file_system_predicates' ] = []
     self._reads[ 'media_results' ] = []
     
     self.example_tag_repo_service_key = HydrusData.GenerateKey()
     
     services = []
     
     services.append( ClientServices.GenerateService( CC.LOCAL_BOORU_SERVICE_KEY, HC.LOCAL_BOORU, CC.LOCAL_BOORU_SERVICE_KEY ) )
     services.append( ClientServices.GenerateService( CC.COMBINED_LOCAL_FILE_SERVICE_KEY, HC.COMBINED_LOCAL_FILE, CC.COMBINED_LOCAL_FILE_SERVICE_KEY ) )
     services.append( ClientServices.GenerateService( CC.LOCAL_FILE_SERVICE_KEY, HC.LOCAL_FILE_DOMAIN, CC.LOCAL_FILE_SERVICE_KEY ) )
     services.append( ClientServices.GenerateService( CC.TRASH_SERVICE_KEY, HC.LOCAL_FILE_TRASH_DOMAIN, CC.LOCAL_FILE_SERVICE_KEY ) )
     services.append( ClientServices.GenerateService( CC.LOCAL_TAG_SERVICE_KEY, HC.LOCAL_TAG, CC.LOCAL_TAG_SERVICE_KEY ) )
     services.append( ClientServices.GenerateService( self.example_tag_repo_service_key, HC.TAG_REPOSITORY, 'example tag repo' ) )
     services.append( ClientServices.GenerateService( CC.COMBINED_TAG_SERVICE_KEY, HC.COMBINED_TAG, CC.COMBINED_TAG_SERVICE_KEY ) )
     services.append( ClientServices.GenerateService( TestConstants.LOCAL_RATING_LIKE_SERVICE_KEY, HC.LOCAL_RATING_LIKE, 'example local rating like service' ) )
     services.append( ClientServices.GenerateService( TestConstants.LOCAL_RATING_NUMERICAL_SERVICE_KEY, HC.LOCAL_RATING_NUMERICAL, 'example local rating numerical service' ) )
     
     self._reads[ 'services' ] = services
     
     client_files_locations = {}
     
     for prefix in HydrusData.IterateHexPrefixes():
         
         for c in ( 'f', 't', 'r' ):
             
             client_files_locations[ c + prefix ] = client_files_default
             
         
     
     self._reads[ 'client_files_locations' ] = client_files_locations
     
     self._reads[ 'sessions' ] = []
     self._reads[ 'tag_parents' ] = {}
     self._reads[ 'tag_siblings' ] = {}
     self._reads[ 'in_inbox' ] = False
     
     self._writes = collections.defaultdict( list )
     
     self._managers = {}
     
     self.services_manager = ClientCaches.ServicesManager( self )
     self.client_files_manager = ClientCaches.ClientFilesManager( self )
     
     self.parsing_cache = ClientCaches.ParsingCache()
     
     bandwidth_manager = ClientNetworkingBandwidth.NetworkBandwidthManager()
     session_manager = ClientNetworkingSessions.NetworkSessionManager()
     domain_manager = ClientNetworkingDomain.NetworkDomainManager()
     login_manager = ClientNetworkingLogin.NetworkLoginManager()
     
     self.network_engine = ClientNetworking.NetworkEngine( self, bandwidth_manager, session_manager, domain_manager, login_manager )
     
     self.CallToThreadLongRunning( self.network_engine.MainLoop )
     
     self._managers[ 'tag_censorship' ] = ClientCaches.TagCensorshipManager( self )
     self._managers[ 'tag_siblings' ] = ClientCaches.TagSiblingsManager( self )
     self._managers[ 'tag_parents' ] = ClientCaches.TagParentsManager( self )
     self._managers[ 'undo' ] = ClientCaches.UndoManager( self )
     self.server_session_manager = HydrusSessions.HydrusSessionManagerServer()
     
     self.local_booru_manager = ClientCaches.LocalBooruCache( self )
     
     self._cookies = {}
     
     self._job_scheduler = HydrusThreading.JobScheduler( self )
     
     self._job_scheduler.start()
예제 #2
0
파일: test.py 프로젝트: antonpaquin/hydrus
 def AcquirePageKey( self ):
     
     return HydrusData.GenerateKey()