def test_monitor_downloads_stop_ip(self): """ Test whether we stop building IPs when a download doesn't exist anymore """ mock_circuit = MockObject() mock_circuit.circuit_id = 0 mock_circuit.ctype = 'IP_SEEDER' mock_circuit.state = 'READY' mock_circuit.info_hash = b'a' mock_circuit.goal_hops = 1 mock_circuit.last_activity = 0 self.nodes[0].overlay.remove_circuit = Mock() self.nodes[0].overlay.circuits[0] = mock_circuit self.nodes[0].overlay.join_swarm(b'a', 1) self.nodes[0].overlay.download_states[b'a'] = 3 self.nodes[0].overlay.monitor_downloads([]) self.nodes[0].overlay.remove_circuit.assert_called_with( 0, 'leaving hidden swarm', destroy=5)
def test_monitor_downloads_stop_all(self): """ Test whether circuits are removed when all downloads are stopped """ def mocked_remove_circuit(circuit_id, *_, **__): mocked_remove_circuit.circuit_id = circuit_id mocked_remove_circuit.circuit_id = -1 mock_circuit = MockObject() mock_circuit.circuit_id = 0 mock_circuit.ctype = 'DATA' mock_circuit.state = 'READY' mock_circuit.info_hash = b'a' mock_circuit.goal_hops = 1 mock_circuit.last_activity = 0 self.nodes[0].overlay.remove_circuit = mocked_remove_circuit self.nodes[0].overlay.circuits[0] = mock_circuit self.nodes[0].overlay.join_swarm(b'a', 1) self.nodes[0].overlay.download_states[b'a'] = 3 self.nodes[0].overlay.monitor_downloads([]) self.assertEqual(mocked_remove_circuit.circuit_id, 0)
def test_monitor_downloads_intro(self): """ Test whether rendezvous points are removed when a download is stopped """ def mocked_remove_circuit(circuit_id, *_, **__): mocked_remove_circuit.circuit_id = circuit_id mocked_remove_circuit.circuit_id = -1 mock_circuit = MockObject() mock_circuit.circuit_id = 0 mock_circuit.ctype = 'RP_DOWNLOADER' mock_circuit.state = 'READY' mock_circuit.info_hash = b'a' mock_circuit.goal_hops = 1 mock_circuit.last_activity = 0 self.nodes[0].overlay.remove_circuit = mocked_remove_circuit self.nodes[0].overlay.circuits[0] = mock_circuit self.nodes[0].overlay.join_swarm(b'a', 1) self.nodes[0].overlay.swarms[b'a'].add_connection(mock_circuit, None) self.nodes[0].overlay.download_states[b'a'] = 3 self.nodes[0].overlay.monitor_downloads([]) self.assertEqual(mocked_remove_circuit.circuit_id, 0)