def startup(): """Startup Miro. This method starts up the eventloop and schedules the rest of the startup to run in the event loop. Frontends should call this method, then wait for 1 of 2 messages StartupSuccess is sent once the startup is done and the backend is ready to go. StartupFailure is sent if something bad happened. initialize() must be called before startup(). """ logging.info("Starting up %s", app.config.get(prefs.LONG_APP_NAME)) logging.info("Version: %s", app.config.get(prefs.APP_VERSION)) logging.info("Revision: %s", app.config.get(prefs.APP_REVISION)) logging.info("Builder: %s", app.config.get(prefs.BUILD_MACHINE)) logging.info("Build Time: %s", app.config.get(prefs.BUILD_TIME)) logging.info("Debugmode: %s", app.debugmode) eventloop.connect('thread-started', startup_for_frontend) logging.info("Reading HTTP Password list") httpauth.init() httpauth.restore_from_file() logging.info("Starting libCURL thread") httpclient.init_libcurl() httpclient.start_thread() logging.info("Starting event loop thread") eventloop.startup() if DEBUG_DB_MEM_USAGE: mem_usage_test_event.wait() load_extensions()
def setUp(self): self.tempdir = tempfile.mkdtemp() if not os.path.exists(self.tempdir): os.makedirs(self.tempdir) self.setup_downloader_log() models.initialize() app.in_unit_tests = True # reload config and initialize it to temprary config.load_temporary() self.platform = app.config.get(prefs.APP_PLATFORM) database.set_thread(threading.currentThread()) database.setup_managers() self.raise_db_load_errors = True app.db = None self.reload_database() self.setup_new_item_info_cache() searchengines._engines = [ searchengines.SearchEngineInfo(u"all", u"Search All", u"", -1) ] # reset the event loop util.chatter = False self.saw_error = False self.error_signal_okay = False signals.system.connect('error', self.handle_error) app.controller = DummyController() self.httpserver = None httpauth.init()
def startup(): """Startup Miro. This method starts up the eventloop and schedules the rest of the startup to run in the event loop. Frontends should call this method, then wait for 1 of 2 messages StartupSuccess is sent once the startup is done and the backend is ready to go. StartupFailure is sent if something bad happened. initialize() must be called before startup(). """ logging.info("Starting up %s", app.config.get(prefs.LONG_APP_NAME)) logging.info("Version: %s", app.config.get(prefs.APP_VERSION)) logging.info("Revision: %s", app.config.get(prefs.APP_REVISION)) logging.info("Builder: %s", app.config.get(prefs.BUILD_MACHINE)) logging.info("Build Time: %s", app.config.get(prefs.BUILD_TIME)) logging.info("Debugmode: %s", app.debugmode) eventloop.connect('thread-started', finish_startup) logging.info("Reading HTTP Password list") httpauth.init() httpauth.restore_from_file() logging.info("Starting libCURL thread") httpclient.init_libcurl() httpclient.start_thread() logging.info("Starting event loop thread") eventloop.startup() if DEBUG_DB_MEM_USAGE: mem_usage_test_event.wait() load_extensions()
def setUp(self): self.setup_log_filter() self.tempdir = tempfile.mkdtemp() if not os.path.exists(self.tempdir): os.makedirs(self.tempdir) self.setup_downloader_log() models.initialize() app.in_unit_tests = True app.device_manager = devices.DeviceManager() models.Item._path_count_tracker.reset() testobjects.test_started(self) # Tweak Item to allow us to make up fake paths for FileItems models.Item._allow_nonexistent_paths = True # setup the deleted file checker item.setup_deleted_checker() item.start_deleted_checker() # Skip worker proccess for feedparser feed._RUN_FEED_PARSER_INLINE = True signals.system.connect('new-dialog', self.handle_new_dialog) # reload config and initialize it to temprary config.load_temporary() self.setup_config_watcher() self.platform = app.config.get(prefs.APP_PLATFORM) self.set_temp_support_directory() # for the unittests, both the database code and any UI code should run # in the main thread. threadcheck.set_eventloop_thread(threading.currentThread()) threadcheck.set_ui_thread(threading.currentThread()) self.raise_db_load_errors = True app.db = None self.allow_db_upgrade_error_dialog = False self.reload_database() self.setup_new_item_info_cache() self.setup_dummy_message_handlers() item.setup_metadata_manager(self.tempdir) searchengines._engines = [ searchengines.SearchEngineInfo(u"all", u"Search All", u"", -1) ] # reset the event loop util.chatter = False self.saw_error = False self.error_signal_okay = False signals.system.connect('error', self.handle_error) app.controller = DummyController() self.httpserver = None httpauth.init() # reset any logging records from our setUp call() self.log_filter.reset_records() # create an extension manager that searches our tempdir for extensions # NOTE: this doesn't actually load any extensions, since the directory # is currently empty. If you want to use the ExtensionManager you # need to put a .miroext file in the tempdir then call # app.extension_manager.load_extension() app.extension_manager = extensionmanager.ExtensionManager( [self.tempdir], []) # Create a download state object (but don't start the downloader # for the individual test unless necessary. In this case we override # the class to run the downloader). app.download_state_manager = downloader.DownloadStateManager() self.mock_patchers = []
def test_store(self): self.setup_answer("user", "password") self.grab_url(self.httpserver.build_url('protected/index.txt')) self.assertEquals(self.dialogs_seen, 1) # write out the data store_path = self.make_temp_path('.json') httpauth.write_to_file(store_path) # reset the data, check that we get a new dialog httpauth.init() self.grab_url(self.httpserver.build_url('protected/index.txt')) self.assertEquals(self.dialogs_seen, 2) # reset the data, then restore from file. We shouldn't get a new # dialog this time httpauth.init() httpauth.restore_from_file(store_path) self.grab_url(self.httpserver.build_url('protected/index.txt')) self.assertEquals(self.dialogs_seen, 2)
def setUp(self): self.setup_log_filter() self.tempdir = tempfile.mkdtemp() if not os.path.exists(self.tempdir): os.makedirs(self.tempdir) self.setup_downloader_log() models.initialize() app.in_unit_tests = True # Tweak Item to allow us to make up fake paths for FileItems models.Item._allow_nonexistent_paths = True # setup movie data stuff self.metadata_progress_updater = FakeMetadataProgressUpdater() app.metadata_progress_updater = self.metadata_progress_updater moviedata.movie_data_updater = moviedata.MovieDataUpdater() # Skip worker proccess for feedparser feed._RUN_FEED_PARSER_INLINE = True # reload config and initialize it to temprary config.load_temporary() self.platform = app.config.get(prefs.APP_PLATFORM) database.set_thread(threading.currentThread()) database.setup_managers() self.raise_db_load_errors = True app.db = None self.reload_database() self.setup_new_item_info_cache() searchengines._engines = [ searchengines.SearchEngineInfo(u"all", u"Search All", u"", -1) ] # reset the event loop util.chatter = False self.saw_error = False self.error_signal_okay = False signals.system.connect('error', self.handle_error) app.controller = DummyController() self.httpserver = None httpauth.init() # reset any logging records from our setUp call() self.log_filter.reset_records()