From ca9b5695f07ca50790ce7398e77b04e4c97f168c Mon Sep 17 00:00:00 2001
From: Simon Charette <charette.s@gmail.com>
Date: Fri, 27 Jul 2012 15:28:09 -0400
Subject: [PATCH] Fixed #18675 -- Make sure if-modified-since works on 64
 oses.

---
 django/views/static.py                             |    2 +-
 .../conditional_processing/models.py               |   11 ++++++++++-
 2 files changed, 11 insertions(+), 2 deletions(-)

diff --git a/django/views/static.py b/django/views/static.py
index bcac947..bb1dcfd 100644
--- a/django/views/static.py
+++ b/django/views/static.py
@@ -138,7 +138,7 @@ def was_modified_since(header=None, mtime=0, size=0):
         header_len = matches.group(3)
         if header_len and int(header_len) != size:
             raise ValueError
-        if mtime > header_mtime:
+        if int(mtime) > header_mtime:
             raise ValueError
     except (AttributeError, ValueError, OverflowError):
         return True
diff --git a/tests/regressiontests/conditional_processing/models.py b/tests/regressiontests/conditional_processing/models.py
index d1a8ac6..5487276 100644
--- a/tests/regressiontests/conditional_processing/models.py
+++ b/tests/regressiontests/conditional_processing/models.py
@@ -3,7 +3,8 @@ from datetime import datetime
 
 from django.test import TestCase
 from django.utils import unittest
-from django.utils.http import parse_etags, quote_etag, parse_http_date
+from django.utils.http import http_date, parse_etags, parse_http_date, quote_etag
+from django.views.static import was_modified_since
 
 
 FULL_RESPONSE = 'Test conditional get response'
@@ -154,3 +155,11 @@ class HttpDateProcessing(unittest.TestCase):
         parsed = parse_http_date('Sun Nov  6 08:49:37 1994')
         self.assertEqual(datetime.utcfromtimestamp(parsed),
                          datetime(1994, 11, 6, 8, 49, 37))
+
+
+class WasModifiedSince(unittest.TestCase):
+    def test_floating_point_mtime(self):
+        # See #18675
+        mtime = 1343416141.107817
+        header = http_date(mtime)
+        self.assertFalse(was_modified_since(header, mtime))
-- 
1.7.9.5

