test_web: workaround broken HEAD behavior in twisted-2.5.0 and earlier

This commit is contained in:
Brian Warner 2008-08-12 19:45:20 -07:00
parent 6af4619928
commit bcbb51fe4a

View File

@ -99,6 +99,18 @@ class HTTPClientHEADFactory(client.HTTPClientFactory):
client.HTTPClientFactory.__init__(self, *args, **kwargs)
self.deferred.addCallback(lambda res: self.response_headers)
def noPage(self, reason):
# Twisted-2.5.0 and earlier had a bug, in which they would raise an
# exception when the response to a HEAD request had no body (when in
# fact they are defined to never have a body). This was fixed in
# Twisted-8.0 . To work around this, we catch the
# PartialDownloadError and make it disappear.
if (reason.check(client.PartialDownloadError)
and self.method.upper() == "HEAD"):
self.page("")
return
return client.HTTPClientFactory.noPage(self, reason)
class WebMixin(object):
def setUp(self):