Created
June 19, 2013 19:12
-
-
Save dangra/5817089 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff --git a/scrapy/tests/test_downloader_handlers.py b/scrapy/tests/test_downloader_handlers.py | |
index 4728177..0ee1f77 100644 | |
--- a/scrapy/tests/test_downloader_handlers.py | |
+++ b/scrapy/tests/test_downloader_handlers.py | |
@@ -58,6 +58,7 @@ class HttpTestCase(unittest.TestCase): | |
r = static.File(name) | |
r.putChild("redirect", util.Redirect("/file")) | |
r.putChild("wait", ForeverTakingResource()) | |
+ r.putChild("hang-after-headers", ForeverTakingResource(write=True)) | |
r.putChild("nolength", NoLengthResource()) | |
r.putChild("host", HostHeaderResource()) | |
r.putChild("payload", PayloadResource()) | |
@@ -106,10 +107,18 @@ class HttpTestCase(unittest.TestCase): | |
d.addCallback(self.assertEquals, 302) | |
return d | |
+ @defer.inlineCallbacks | |
def test_timeout_download_from_spider(self): | |
- request = Request(self.getURL('wait'), meta=dict(download_timeout=0.1)) | |
- d = self.download_request(request, BaseSpider('foo')) | |
- return self.assertFailure(d, defer.TimeoutError, error.TimeoutError) | |
+ spider = BaseSpider('foo') | |
+ meta = {'download_timeout': 0.2} | |
+ # client connects but no data is sent back | |
+ request = Request(self.getURL('wait'), meta=meta) | |
+ d = self.download_request(request, spider) | |
+ yield self.assertFailure(d, defer.TimeoutError, error.TimeoutError) | |
+ # client connects, server send headers and some body bytes but hangs | |
+ request = Request(self.getURL('hang-after-headers'), meta=meta) | |
+ d = self.download_request(request, spider) | |
+ yield self.assertFailure(d, defer.TimeoutError, error.TimeoutError) | |
def test_host_header_not_in_request_headers(self): | |
def _test(response): |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment