Exemplo n.º 1
0
def was_modified_since(header=None, mtime=0, size=0):
    """
    Was something modified since the user last downloaded it?

    header
      This is the value of the If-Modified-Since header.  If this is None,
      I'll just return True.

    mtime
      This is the modification time of the item we're talking about.

    size
      This is the size of the item we're talking about.
    """
    try:
        if header is None:
            raise ValueError
        matches = re.match(r"^([^;]+)(; length=([0-9]+))?$", header,
                           re.IGNORECASE)
        header_mtime = parse_http_date(matches.group(1))
        header_len = matches.group(3)
        if header_len and int(header_len) != size:
            raise ValueError
        if mtime > header_mtime:
            raise ValueError
    except (AttributeError, ValueError, OverflowError):
        return True
    return False
Exemplo n.º 2
0
 def testParsingAsctime(self):
     parsed = parse_http_date('Sun Nov  6 08:49:37 1994')
     self.assertEqual(datetime.utcfromtimestamp(parsed),
                      datetime(1994, 11, 6, 8, 49, 37))
Exemplo n.º 3
0
 def testParsingRfc850(self):
     parsed = parse_http_date('Sunday, 06-Nov-94 08:49:37 GMT')
     self.assertEqual(datetime.utcfromtimestamp(parsed),
                      datetime(1994, 11, 6, 8, 49, 37))