def test_multifile_torrent(self): tdef = TorrentDef() dn = os.path.join(TESTS_DATA_DIR, "contentdir") tdef.add_content(dn, "dirintorrent") fn = os.path.join(TESTS_DATA_DIR, "video.avi") tdef.add_content(fn, os.path.join("dirintorrent", "video.avi")) tdef.set_tracker("http://tribler.org/announce") tdef.finalize() impl = LibtorrentDownloadImpl(self.session, tdef) # Override the add_torrent because it will be called impl.ltmgr = MockObject() impl.ltmgr.add_torrent = lambda _, _dummy2: fake_handler impl.set_selected_files = lambda: None fake_handler = MockObject() fake_handler.is_valid = lambda: True fake_handler.status = lambda: fake_status fake_handler.set_share_mode = lambda _: None fake_handler.resume = lambda: None fake_handler.resolve_countries = lambda _: None fake_status = MockObject() fake_status.share_mode = False # Create a dummy download config impl.dlconfig = DownloadStartupConfig().dlconfig.copy() # Create a dummy pstate pstate = CallbackConfigParser() pstate.add_section("state") test_dict = dict() test_dict["a"] = "b" pstate.set("state", "engineresumedata", test_dict) return impl.network_create_engine_wrapper(pstate)
def test_downloadconfig(self): dlconf = CallbackConfigParser() dlconf.add_section('downloadconfig') dlconf.set('downloadconfig', 'hops', 5) dlcfg = DownloadConfigInterface(dlconf) self.assertIsInstance(dlcfg.get_dest_dir(), unicode) dlcfg.set_dest_dir(self.session_base_dir) self.assertEqual(dlcfg.get_dest_dir(), self.session_base_dir) dlcfg.set_corrected_filename("foobar") self.assertEqual(dlcfg.get_corrected_filename(), "foobar") dlcfg.set_mode(1) self.assertEqual(dlcfg.get_mode(), 1) dlcfg.set_hops(4) self.assertEqual(dlcfg.get_hops(), 4) dlcfg.set_safe_seeding(False) self.assertFalse(dlcfg.get_safe_seeding()) dlcfg.set_selected_files("foo.bar") self.assertEqual(dlcfg.get_selected_files(), ["foo.bar"]) dlcfg.set_max_speed(UPLOAD, 1337) dlcfg.set_max_speed(DOWNLOAD, 1338) self.assertEqual(dlcfg.get_max_speed(UPLOAD), 1337) self.assertEqual(dlcfg.get_max_speed(DOWNLOAD), 1338)
def test_multifile_torrent(self): tdef = TorrentDef() tdef.add_content(os.path.join(TESTS_DATA_DIR, "video.avi")) tdef.set_tracker("http://tribler.org/announce") tdef.save() impl = LibtorrentDownloadImpl(self.session, tdef) # Override the add_torrent because it will be called impl.ltmgr = MockObject() impl.ltmgr.add_torrent = lambda _, _dummy2: succeed(fake_handler) impl.set_selected_files = lambda: None fake_handler = MockObject() fake_handler.is_valid = lambda: True fake_handler.status = lambda: fake_status fake_handler.set_share_mode = lambda _: None fake_handler.set_priority = lambda _: None fake_handler.set_sequential_download = lambda _: None fake_handler.resume = lambda: None fake_handler.set_max_connections = lambda _: None fake_status = MockObject() fake_status.share_mode = False # Create a dummy download config impl.dlconfig = DownloadStartupConfig().dlconfig.copy() # Create a dummy pstate pstate = CallbackConfigParser() pstate.add_section("state") test_dict = dict() test_dict["a"] = "b" pstate.set("state", "engineresumedata", test_dict) return impl.network_create_engine_wrapper(pstate)
def setup_tribler_gui_config(self): """ Initialize the TriblerGUI configuration file and make sure that we have all required values. """ configfilepath = os.path.join(self.get_state_dir(), STATEDIR_GUICONFIG) gui_config = CallbackConfigParser() DefaultDownloadStartupConfig.getInstance().set_dest_dir( get_default_dest_dir()) # Load the config file. if os.path.exists(configfilepath): gui_config.read_file(configfilepath, 'utf-8-sig') if not gui_config.has_section('Tribler'): gui_config.add_section('Tribler') for k, v in tribler_defaults['Tribler'].iteritems(): if not gui_config.has_option(k, v): gui_config.set('Tribler', k, v) if not gui_config.has_section('downloadconfig'): gui_config.add_section('downloadconfig') for k, v in DefaultDownloadStartupConfig.getInstance( ).dlconfig._sections['downloadconfig'].iteritems(): if not gui_config.has_option(k, v): gui_config.set('downloadconfig', k, v) # Make sure we use the same ConfigParser instance for both Utility and DefaultDownloadStartupConfig. DefaultDownloadStartupConfig.getInstance().dlconfig = gui_config gui_config.write_file(configfilepath)
def test_get_settings(self): """ Testing whether the API returns a correct settings dictionary when the settings are requested """ self.should_check_equality = False tribler_config = CallbackConfigParser() tribler_config.add_section('Tribler') tribler_config.write_file(os.path.join(self.session.get_state_dir(), 'tribler.conf')) return self.do_request('settings', expected_code=200).addCallback(self.verify_settings)
def test_session_config_init(self): sessconf = CallbackConfigParser() sessconf.add_section('mainline_dht') sessconf.set('mainline_dht', 'mainline_dht_port', 1234) sci = SessionConfigInterface(sessconf) self.assertTrue(sci) self.assertIsInstance(sci.get_listen_port(), int) self.assertIsInstance(sci.get_mainline_dht_listen_port(), int) self.assertIsInstance(sci.get_default_state_dir(), unicode) sci.set_state_dir(self.session_base_dir) self.assertEqual(sci.get_state_dir(), self.session_base_dir) default_log_dir = os.path.join(self.session_base_dir, "logs") self.assertEqual(sci.get_log_dir(), default_log_dir) sci.set_log_dir(self.LOG_DIR) self.assertEqual(sci.get_log_dir(), self.LOG_DIR) self.assertIsInstance(sci.get_install_dir(), (unicode, str)) self.assertIsInstance(sci.get_permid_keypair_filename(), str) sci.set_listen_port(1337) self.assertEqual(sci.sessconfig.get('general', 'minport'), 1337) self.assertEqual(sci.sessconfig.get('general', 'maxport'), 1337) self.assertIsInstance(sci.get_tunnel_community_socks5_listen_ports(), list) self.assertFalse(sci.get_tunnel_community_exitnode_enabled()) sci.set_tunnel_community_enabled(False) self.assertFalse(sci.get_tunnel_community_enabled()) sci.set_megacache(False) self.assertFalse(sci.get_megacache()) sci.set_libtorrent(False) self.assertFalse(sci.get_libtorrent()) sci.set_libtorrent_max_conn_download(5) self.assertEqual(sci.get_libtorrent_max_conn_download(), 5) sci.set_libtorrent_max_download_rate(200) self.assertEqual(sci.get_libtorrent_max_download_rate(), 200) sci.set_libtorrent_max_upload_rate(300) self.assertEqual(sci.get_libtorrent_max_upload_rate(), 300) sci.set_libtorrent_proxy_settings(3, ("127.0.0.1", 1337), ("foo", "bar")) self.assertEqual(sci.get_libtorrent_proxy_settings(), (3, ("127.0.0.1", 1337), ("foo", "bar"))) sci.set_anon_proxy_settings(5, ("127.0.0.1", 1337), ("foo", "bar")) self.assertEqual(sci.get_anon_proxy_settings(), (5, ("127.0.0.1", 1337), ("foo", "bar"))) sci.set_libtorrent_utp(False) self.assertFalse(sci.get_libtorrent_utp()) sci.set_torrent_store(False) self.assertFalse(sci.get_torrent_store()) sci.set_torrent_store_dir(self.session_base_dir) self.assertEqual(sci.get_torrent_store_dir(), self.session_base_dir) sci.set_torrent_collecting(False) self.assertFalse(sci.get_torrent_collecting()) sci.set_dht_torrent_collecting(False) self.assertFalse(sci.get_dht_torrent_collecting()) sci.set_torrent_collecting_max_torrents(1337) self.assertEqual(sci.get_torrent_collecting_max_torrents(), 1337) sci.set_torrent_collecting_dir(self.session_base_dir) self.assertEqual(sci.get_torrent_collecting_dir(), self.session_base_dir) sci.set_torrent_checking(False) self.assertFalse(sci.get_torrent_checking()) sci.set_stop_collecting_threshold(1337) self.assertEqual(sci.get_stop_collecting_threshold(), 1337) sci.set_nickname("foobar") self.assertEqual(sci.get_nickname(), "foobar") self.assertEqual(sci.get_mugshot(), (None, None)) sci.set_mugshot("myimage", mime="image/png") self.assertEqual(sci.get_mugshot(), ("image/png", "myimage")) sci.set_peer_icon_path(self.session_base_dir) self.assertEqual(sci.get_peer_icon_path(), self.session_base_dir) sci.set_video_analyser_path(self.session_base_dir) self.assertEqual(sci.get_video_analyser_path(), self.session_base_dir) sci.set_mainline_dht(False) self.assertFalse(sci.get_mainline_dht()) sci.set_mainline_dht_listen_port(1337) self.assertEqual( sci.sessconfig.get('mainline_dht', 'mainline_dht_port'), 1337) sci.set_multicast_local_peer_discovery(False) self.assertFalse(sci.get_multicast_local_peer_discovery()) sci.set_dispersy(False) self.assertFalse(sci.get_dispersy()) sci.set_dispersy_port(1337) self.assertIsInstance(sci.get_dispersy_port(), int) self.assertEqual(sci.sessconfig.get('dispersy', 'dispersy_port'), 1337) sci.set_videoserver_enabled(False) self.assertFalse(sci.get_videoserver_enabled()) sci.set_videoplayer_path(self.session_base_dir) self.assertEqual(sci.get_videoplayer_path(), self.session_base_dir) sci.set_videoserver_port(1337) self.assertIsInstance(sci.get_videoserver_port(), int) self.assertEqual(sci.sessconfig.get('video', 'port'), 1337) sci.set_preferred_playback_mode(5) self.assertEqual(sci.get_preferred_playback_mode(), 5) sci.set_enable_torrent_search(False) self.assertFalse(sci.get_enable_torrent_search()) sci.set_enable_channel_search(False) self.assertFalse(sci.get_enable_channel_search()) sci.set_enable_metadata(False) self.assertFalse(sci.get_enable_metadata()) sci.set_metadata_store_dir(self.session_base_dir) self.assertEqual(sci.get_metadata_store_dir(), self.session_base_dir) sci.set_channel_community_enabled(False) self.assertFalse(sci.get_channel_community_enabled()) sci.set_preview_channel_community_enabled(False) self.assertFalse(sci.get_preview_channel_community_enabled()) sci.set_http_api_enabled(True) self.assertTrue(sci.get_http_api_enabled()) sci.set_http_api_port(1337) self.assertEqual(sci.sessconfig.get('http_api', 'port'), 1337) sci.set_resource_monitor_enabled(False) self.assertFalse(sci.get_resource_monitor_enabled()) sci.set_resource_monitor_poll_interval(12) self.assertEqual(sci.get_resource_monitor_poll_interval(), 12) sci.set_resource_monitor_history_size(1234) self.assertEqual(sci.get_resource_monitor_history_size(), 1234) self.assertIsInstance( sci.get_default_config_filename(self.session_base_dir), str)
class Utility(object): def __init__(self, abcpath, configpath, app=None, session=None): self.version = version_id self.abcpath = abcpath # Find the directory to save config files, etc. self.dir_root = configpath self.setupConfig() # Is ABC in the process of shutting down? self.abcquitting = False self.app = app self.session = session def setupConfig(self): self.configfilepath = os.path.join(self.getConfigPath(), STATEDIR_GUICONFIG) self.config = CallbackConfigParser() # Load the config file. if os.path.exists(self.configfilepath): self.config.read_file(self.configfilepath, 'utf-8-sig') if not self.config.has_section('Tribler'): self.config.add_section('Tribler') # Tribler.conf also contains the default download config. So we need to merge it now. if not self.config.has_section('downloadconfig'): self.config.add_section('downloadconfig') for k, v in DefaultDownloadStartupConfig.getInstance().dlconfig._sections['downloadconfig'].iteritems(): self.config.set('downloadconfig', k, v) # Make sure we use the same ConfigParser instance for both Utility and DefaultDownloadStartupConfig. DefaultDownloadStartupConfig.getInstance().dlconfig = self.config def getVersion(self): return self.version def getConfigPath(self): return self.dir_root def getPath(self): return self.abcpath def set_session(self, session): self.session = session def set_app(self, app): self.app = app def read_config(self, option, section='Tribler', literal_eval=True): if not self.config.has_option(section, option): return tribler_defaults.get(section, {}).get(option, None) return self.config.get(section, option, literal_eval=literal_eval) def write_config(self, option, value, section='Tribler', flush=True): self.config.set(section, option, value) if flush: self.flush_config() def flush_config(self): self.config.write_file(self.configfilepath)
class Utility(object): def __init__(self, abcpath, configpath, app=None, session=None): self.version = version_id self.abcpath = abcpath # Find the directory to save config files, etc. self.dir_root = configpath self.setupConfig() # Is ABC in the process of shutting down? self.abcquitting = False self.app = app self.session = session def setupConfig(self): self.configfilepath = os.path.join(self.getConfigPath(), STATEDIR_GUICONFIG) self.config = CallbackConfigParser() # Load the config file. if os.path.exists(self.configfilepath): self.config.read_file(self.configfilepath, 'utf-8-sig') if not self.config.has_section('Tribler'): self.config.add_section('Tribler') # Tribler.conf also contains the default download config. So we need to merge it now. if not self.config.has_section('downloadconfig'): self.config.add_section('downloadconfig') for k, v in DefaultDownloadStartupConfig.getInstance( ).dlconfig._sections['downloadconfig'].iteritems(): self.config.set('downloadconfig', k, v) # Make sure we use the same ConfigParser instance for both Utility and DefaultDownloadStartupConfig. DefaultDownloadStartupConfig.getInstance().dlconfig = self.config def getVersion(self): return self.version def getConfigPath(self): return self.dir_root def getPath(self): return self.abcpath def set_session(self, session): self.session = session def set_app(self, app): self.app = app def read_config(self, option, section='Tribler', literal_eval=True): if not self.config.has_option(section, option): return tribler_defaults.get(section, {}).get(option, None) return self.config.get(section, option, literal_eval=literal_eval) def write_config(self, option, value, section='Tribler', flush=True): self.config.set(section, option, value) if flush: self.flush_config() def flush_config(self): self.config.write_file(self.configfilepath)