[FIX] P3: stupid use of hasattr
In Python 2, hasattr swallows *any* exception raised during the access. In Python 3, it only swallows AttributeError. Accessing an attribute on an unbound threadlocal proxy raises RuntimeError, while running test_ir_http_mimetype ``request`` is unbound, in Python 2 ``hasattr`` would return ``False`` on an unbound threadlocal, in Python 3 it lets ``RuntimeError`` pass through blowing up the test. Fix this by just checking if the threadlocal is bound by using it as a boolean…
This commit is contained in:
@@ -323,7 +323,7 @@ class IrHttp(models.AbstractModel):
|
||||
headers += [('Content-Type', mimetype), ('X-Content-Type-Options', 'nosniff')]
|
||||
|
||||
# cache
|
||||
etag = hasattr(request, 'httprequest') and request.httprequest.headers.get('If-None-Match')
|
||||
etag = bool(request) and request.httprequest.headers.get('If-None-Match')
|
||||
retag = '"%s"' % hashlib.md5(last_update).hexdigest()
|
||||
status = status or (304 if etag == retag else 200)
|
||||
headers.append(('ETag', retag))
|
||||
|
||||
Reference in New Issue
Block a user