def test_monitor_downloads_recreate_ip(self): """ Test whether an old introduction point is recreated """ mock_state = MockObject() mock_download = MockObject() mock_tdef = MockObject() mock_tdef.get_infohash = lambda: b'a' mock_download.get_def = lambda: mock_tdef mock_download.add_peer = lambda _: succeed(None) mock_download.get_state = lambda: mock_state mock_download.config = MockObject() mock_download.config.get_hops = lambda: 1 mock_download.apply_ip_filter = lambda _: None mock_state.get_status = lambda: 4 mock_state.get_download = lambda: mock_download def mock_create_ip(*_, **__): mock_create_ip.called = True mock_create_ip.called = False self.nodes[0].overlay.create_introduction_point = mock_create_ip self.nodes[0].overlay.download_states[b'a'] = 3 self.nodes[0].overlay.monitor_downloads([mock_state]) self.assertTrue(mock_create_ip.called)
async def test_multifile_torrent(self): # Achtung! This test is completely and utterly broken, as is the whole libtorrent wrapper! # Don't try to understand it, it is a legacy thing! tdef = TorrentDef() tdef.add_content(TESTS_DATA_DIR / "video.avi") tdef.set_tracker("http://tribler.org/announce") tdef.save() 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_handler.apply_ip_filter = lambda _: None fake_handler.save_resume_data = lambda: None fake_status = MockObject() fake_status.share_mode = False dl = Download(self.session, tdef) dl.set_selected_files = lambda: None dl.future_added = succeed(fake_handler) # Create a dummy download config dl.config = DownloadConfig() dl.config.set_engineresumedata({ b"save_path": path_util.abspath(self.state_dir), b"info-hash": b'\x00' * 20 }) dl.setup() dl.config.set_engineresumedata({ b"save_path": path_util.abspath(self.state_dir), b"info-hash": b'\x00' * 20 }) dl.setup() dl.config.set_engineresumedata({ b"save_path": "some_local_dir", b"info-hash": b'\x00' * 20 }) dl.setup() await dl.shutdown()