def test_udpsession_response_too_short(self): session = UdpTrackerSession("localhost", ("localhost", 4782), "/announce", 0, self.socket_mgr) self.assertFalse(session.is_failed) packet = struct.pack("!i", 123) session.handle_scrape_response(packet) self.assertTrue(session.is_failed)
def test_udpsession_response_wrong_transaction_id(self): session = UdpTrackerSession("localhost", ("localhost", 4782), "/announce", 0, self.socket_mgr) self.assertFalse(session.is_failed) packet = struct.pack("!ii", 0, 1337) session.handle_scrape_response(packet) self.assertTrue(session.is_failed)
def test_udpsession_mismatch(self): session = UdpTrackerSession("localhost", ("localhost", 4782), "/announce", 0, self.socket_mgr) session.action = 123 session.transaction_id = 124 session._infohash_list = [1337] self.assertFalse(session.is_failed) packet = struct.pack("!ii", 123, 124) session.handle_scrape_response(packet) self.assertTrue(session.is_failed)
def test_udpsession_correct_handle(self): session = UdpTrackerSession("localhost", ("localhost", 4782), "/announce", 5, self.socket_mgr) session.on_ip_address_resolved("127.0.0.1", start_scraper=False) session.result_deferred = Deferred() self.assertFalse(session.is_failed) session._infohash_list = ["test"] packet = struct.pack("!iiiii", session.action, session.transaction_id, 0, 1, 2) session.handle_scrape_response(packet) return session.result_deferred.addCallback(lambda *_: session.cleanup())
def test_udpsession_response_list_len_mismatch(self): session = UdpTrackerSession("localhost", ("localhost", 4782), "/announce", 0, self.socket_mgr) session.result_deferred = Deferred() def on_error(_): pass session.result_deferred.addErrback(on_error) session.action = 123 session.transaction_id = 123 self.assertFalse(session.is_failed) session._infohash_list = ["test", "test2"] packet = struct.pack("!iiiii", 123, 123, 0, 1, 2) session.handle_scrape_response(packet) self.assertTrue(session.is_failed)
def test_udpsession_response_wrong_transaction_id(self): session = UdpTrackerSession("localhost", ("localhost", 4782), "/announce", 0, self.socket_mgr) self.assertFalse(session.is_failed) packet = struct.pack("!ii", 0, 1337) session.handle_scrape_response(packet) self.assertTrue(session.is_failed)
def test_udpsession_response_too_short(self): session = UdpTrackerSession("localhost", ("localhost", 4782), "/announce", 0, self.socket_mgr) self.assertFalse(session.is_failed) packet = struct.pack("!i", 123) session.handle_scrape_response(packet) self.assertTrue(session.is_failed)