--- file.py 2010-03-10 13:27:29.000000000 +0300 +++ file.py 2010-03-11 08:58:02.000000000 +0300 @@ -48,7 +48,7 @@ >>> class MyFile(object): ... contentType='text/plain' ... data="data of file" - ... modified = datetime(2006,1,1,tzinfo=pytz.utc) + ... modified = datetime(2006,1,1, microsecond=12345, tzinfo=pytz.utc) ... def getSize(self): ... return len(self.data) @@ -77,8 +77,19 @@ >>> view = FileTestView(aFile,request) >>> view.show() 'data of file' - >>> request.response.getHeader('Last-Modified') - 'Sun, 01 Jan 2006 00:00:00 GMT' + >>> lmt = request.response.getHeader('Last-Modified') + >>> print lmt + Sun, 01 Jan 2006 00:00:00 GMT + + If the "If-Modified-Since" header is set and is equal a 304 + status is returned and the value is empty. + + >>> request = TestRequest(IF_MODIFIED_SINCE=lmt) + >>> view = FileTestView(aFile,request) + >>> view.show() + '' + >>> request.response.getStatus() + 304 If the "If-Modified-Since" header is set and is newer a 304 status is returned and the value is empty. @@ -86,7 +97,6 @@ >>> modified = datetime(2007,12,31,tzinfo=pytz.utc) >>> modHeader = zope.datetime.rfc1123_date(zope.datetime.time(modified.isoformat())) >>> request = TestRequest(IF_MODIFIED_SINCE=modHeader) - >>> view = FileTestView(aFile,request) >>> view.show() '' @@ -114,7 +124,7 @@ try: mod_since=long(zope.datetime.time(header)) except: mod_since=None if mod_since is not None: - if lmt <= mod_since: + if long(lmt) <= mod_since: self.request.response.setStatus(304) return '' self.request.response.setHeader('Last-Modified',