Download Install Tutorial Docs FAQ Tools WikiLicense Team IRC Planet Involvement Shop Book

Changeset 1790

Show
Ignore:
Timestamp:
10/27/07 23:14:47
Author:
fumanchu
Message:

Fix for #728 (tools.expires doesn't set a past-date header when secs=0).

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/cherrypy/lib/caching.py

    r1771 r1790  
    176176    expire. The 'Expires' header will be set to (response.time + secs). 
    177177     
    178     If 'secs' is zero, the following "cache prevention" headers are also set: 
     178    If 'secs' is zero, the 'Expires' header is set one year in the past, and 
     179    the following "cache prevention" headers are also set: 
    179180       'Pragma': 'no-cache' 
    180181       'Cache-Control': 'no-cache, must-revalidate' 
     
    206207                if force or "Cache-Control" not in headers: 
    207208                    headers["Cache-Control"] = "no-cache, must-revalidate" 
    208          
    209         expiry = http.HTTPDate(response.time + secs) 
     209            # Set an explicit Expires date in the past. 
     210            expiry = http.HTTPDate(1169942400.0) 
     211        else: 
     212            expiry = http.HTTPDate(response.time + secs) 
    210213        if force or "Expires" not in headers: 
    211214            headers["Expires"] = expiry 
  • trunk/cherrypy/test/test_caching.py

    r1771 r1790  
    142142        if cherrypy.server.protocol_version == "HTTP/1.1": 
    143143            self.assertHeader("Cache-Control", "no-cache, must-revalidate") 
    144         d = self.assertHeader("Date") 
    145         self.assertHeader("Expires", d) 
     144        self.assertHeader("Expires", "Sun, 28 Jan 2007 00:00:00 GMT") 
    146145         
    147146        # static content should now have "cache prevention" headers 
     
    151150        if cherrypy.server.protocol_version == "HTTP/1.1": 
    152151            self.assertHeader("Cache-Control", "no-cache, must-revalidate") 
    153         d = self.assertHeader("Date") 
    154         self.assertHeader("Expires", d) 
     152        self.assertHeader("Expires", "Sun, 28 Jan 2007 00:00:00 GMT") 
    155153         
    156154        # the cacheable handler should now have "cache prevention" headers 
     
    160158        if cherrypy.server.protocol_version == "HTTP/1.1": 
    161159            self.assertHeader("Cache-Control", "no-cache, must-revalidate") 
    162         d = self.assertHeader("Date") 
    163         self.assertHeader("Expires", d) 
     160        self.assertHeader("Expires", "Sun, 28 Jan 2007 00:00:00 GMT") 
    164161         
    165162        self.getPage('/expires/dynamic') 
     
    170167        if cherrypy.server.protocol_version == "HTTP/1.1": 
    171168            self.assertHeader("Cache-Control", "no-cache, must-revalidate") 
    172         d = self.assertHeader("Date") 
    173         self.assertHeader("Expires", d) 
     169        self.assertHeader("Expires", "Sun, 28 Jan 2007 00:00:00 GMT") 
    174170     
    175171    def testLastModified(self): 

Hosted by WebFaction

Log in as guest/cpguest to create tickets