def startup_for_frontend(obj, thread): """Run the startup code needed to get the frontend started This function should be kept as small as possible to ensure good startup times. """ threadcheck.set_eventloop_thread(thread) logging.info("Installing deleted file checker...") item.setup_deleted_checker() logging.info("Restoring database...") start = time.time() app.db = storedatabase.LiveStorage() try: app.db.upgrade_database() except databaseupgrade.DatabaseTooNewError: summary = _("Database too new") description = _( "You have a database that was saved with a newer version of " "%(appname)s. You must download the latest version of " "%(appname)s and run that.", {"appname": app.config.get(prefs.SHORT_APP_NAME)}, ) raise StartupError(summary, description) except storedatabase.UpgradeErrorSendCrashReport, e: send_startup_crash_report(e.report) return
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 finish_startup(obj, thread): threadcheck.set_eventloop_thread(thread) logging.info("Installing deleted file checker...") item.setup_deleted_checker() logging.info("Restoring database...") start = time.time() app.db = storedatabase.LiveStorage() try: app.db.upgrade_database() except databaseupgrade.DatabaseTooNewError: summary = _("Database too new") description = _( "You have a database that was saved with a newer version of " "%(appname)s. You must download the latest version of " "%(appname)s and run that.", {"appname": app.config.get(prefs.SHORT_APP_NAME)}, ) raise StartupError(summary, description) except storedatabase.UpgradeErrorSendCrashReport, e: send_startup_crash_report(e.report) return