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)
def create_fake_download_and_state(): """ Create a fake download and state which can be passed to the global download callback. """ tdef = TorrentDef() tdef.get_infohash = lambda: b'aaaa' fake_peer = {'extended_version': 'Tribler', 'id': 'a' * 20, 'dtotal': 10 * 1024 * 1024} fake_download = MockObject() fake_download.get_def = lambda: tdef fake_download.get_def().get_name_as_unicode = lambda: "test.iso" fake_download.get_peerlist = lambda: [fake_peer] fake_download.hidden = False fake_download.checkpoint = lambda: succeed(None) fake_download.stop = lambda: succeed(None) fake_download.shutdown = lambda: succeed(None) dl_state = MockObject() dl_state.get_infohash = lambda: b'aaaa' dl_state.get_status = lambda: DLSTATUS_SEEDING dl_state.get_download = lambda: fake_download fake_config = MockObject() fake_config.get_hops = lambda: 0 fake_config.get_safe_seeding = lambda: True fake_download.config = fake_config return fake_download, dl_state
async def setUp(self): await super(TestResourceMonitor, self).setUp() mock_session = MockObject() mock_session.config = MockObject() mock_session.config.get_resource_monitor_history_size = lambda: 1 mock_session.config.get_resource_monitor_poll_interval = lambda: 20 mock_session.config.get_state_dir = lambda: path_util.Path(".") mock_session.config.get_log_dir = lambda: path_util.Path("logs") mock_session.config.get_resource_monitor_enabled = lambda: False self.resource_monitor = ResourceMonitor(mock_session) self.resource_monitor.session.notifier = MockObject() self.resource_monitor.session.notifier.notify = lambda subject, changeType, obj_id, *args: None
async def test_set_settings(self): """ Testing whether settings in the API can be successfully set """ dcfg = DownloadConfig() download = MockObject() download.config = dcfg self.session.dlmgr.get_downloads = lambda: [download] post_data = { 'download_defaults': { 'seeding_mode': 'ratio', 'seeding_ratio': 3, 'seeding_time': 123 } } await self.do_request('settings', expected_code=200, request_type='POST', post_data=post_data) self.assertEqual(self.session.config.get_seeding_mode(), 'ratio') self.assertEqual(self.session.config.get_seeding_ratio(), 3) self.assertEqual(self.session.config.get_seeding_time(), 123)