X-Git-Url: https://git.mxchange.org/?p=quix0rs-apt-p2p.git;a=blobdiff_plain;f=apt_p2p%2FHTTPDownloader.py;h=8ecac193f6cba22c71ac1747d5df89d327a4ea4f;hp=9e789b8485fa17e42e47ef371bdaf21115277a1b;hb=a153258a1767a9240a2828df9ec5cdc566acdb20;hpb=63dffea17bbfc90dcfb66ec22f48800e71888bc9 diff --git a/apt_p2p/HTTPDownloader.py b/apt_p2p/HTTPDownloader.py index 9e789b8..8ecac19 100644 --- a/apt_p2p/HTTPDownloader.py +++ b/apt_p2p/HTTPDownloader.py @@ -377,7 +377,7 @@ class Peer(ClientFactory): # If there are none, then you get 0 if not self._downloadSpeeds: - return 0.0 + return 150000.0 for download in self._downloadSpeeds: total_time += download[1].days*86400.0 + download[1].seconds + download[1].microseconds/1000000.0 @@ -400,7 +400,7 @@ class Peer(ClientFactory): # If there are none, give it the benefit of the doubt if not self._responseTimes: - return 0.0 + return 0.1 for response in self._responseTimes: total_response += response[1].days*86400.0 + response[1].seconds + response[1].microseconds/1000000.0 @@ -589,6 +589,32 @@ class TestClientManager(unittest.TestCase): d.addCallback(lambda a: self.flushLoggedErrors(TimeoutError)) return d + def test_dnserror(self): + """Tests a connection timeout.""" + from twisted.internet.error import DNSLookupError + host = 'hureyfnvbfha.debian.net' + self.client = Peer(host, 80) + self.timeout = 5 + + d = self.client.get('/rfc/rfc0013.txt') + d.addCallback(self.gotResp, 1, 1070) + d = self.failUnlessFailure(d, DNSLookupError) + d.addCallback(lambda a: self.flushLoggedErrors(DNSLookupError)) + return d + + def test_noroute(self): + """Tests a connection timeout.""" + from twisted.internet.error import NoRouteError + host = '1.2.3.4' + self.client = Peer(host, 80) + self.timeout = 5 + + d = self.client.get('/rfc/rfc0013.txt') + d.addCallback(self.gotResp, 1, 1070) + d = self.failUnlessFailure(d, NoRouteError) + d.addCallback(lambda a: self.flushLoggedErrors(NoRouteError)) + return d + def tearDown(self): for p in self.pending_calls: if p.active():