Commit 3cbe686a authored by Claude Paroz's avatar Claude Paroz
Browse files

Fixed #18675 -- Fixed was_modified_since with floating-point mtime

Thanks Simon Charette for the patch.
parent b3ee80a0
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -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
+1 −1
Original line number Diff line number Diff line
@@ -7,4 +7,4 @@ from .defaults import DefaultsTests
from .i18n import JsI18NTests, I18NTests, JsI18NTestsMultiPackage
from .shortcuts import ShortcutTests
from .specials import URLHandling
from .static import StaticHelperTest, StaticTests
from .static import StaticHelperTest, StaticUtilsTests, StaticTests
+15 −1
Original line number Diff line number Diff line
@@ -2,11 +2,14 @@ from __future__ import absolute_import

import mimetypes
from os import path
import unittest

from django.conf import settings
from django.conf.urls.static import static
from django.test import TestCase
from django.http import HttpResponseNotModified
from django.test import TestCase
from django.utils.http import http_date
from django.views.static import was_modified_since

from .. import urls
from ..urls import media_dir
@@ -105,3 +108,14 @@ class StaticHelperTest(StaticTests):
    def tearDown(self):
        super(StaticHelperTest, self).tearDown()
        urls.urlpatterns = self._old_views_urlpatterns


class StaticUtilsTests(unittest.TestCase):
    def test_was_modified_since_fp(self):
        """
        Test that a floating point mtime does not disturb was_modified_since.
        (#18675)
        """
        mtime = 1343416141.107817
        header = http_date(mtime)
        self.assertFalse(was_modified_since(header, mtime))