From be9bd3348d3c4b060b6eea53ef23d0651c122c77 Mon Sep 17 00:00:00 2001
From: Claude Paroz <claude@2xlibre.net>
Date: Sat, 30 Jan 2016 14:25:56 +0100
Subject: [PATCH] Fixed #25758 -- Defaulted to current language FORMATs in
 date/time filters

Thanks Ali Lozano for the report and the initial patch, and Tim Graham for
the review.
---
 django/template/defaultfilters.py              |  5 -----
 tests/template_tests/filter_tests/test_date.py | 15 +++++++++++++--
 tests/template_tests/filter_tests/test_time.py | 16 ++++++++++++++--
 3 files changed, 27 insertions(+), 9 deletions(-)

diff --git a/django/template/defaultfilters.py b/django/template/defaultfilters.py
index 631118f4b9..1d0c6c6d22 100644
--- a/django/template/defaultfilters.py
+++ b/django/template/defaultfilters.py
@@ -7,7 +7,6 @@ from decimal import ROUND_HALF_UP, Context, Decimal, InvalidOperation
 from functools import wraps
 from pprint import pformat
 
-from django.conf import settings
 from django.utils import formats, six
 from django.utils.dateformat import format, time_format
 from django.utils.encoding import force_text, iri_to_uri
@@ -727,8 +726,6 @@ def date(value, arg=None):
     """Formats a date according to the given format."""
     if value in (None, ''):
         return ''
-    if arg is None:
-        arg = settings.DATE_FORMAT
     try:
         return formats.date_format(value, arg)
     except AttributeError:
@@ -743,8 +740,6 @@ def time(value, arg=None):
     """Formats a time according to the given format."""
     if value in (None, ''):
         return ''
-    if arg is None:
-        arg = settings.TIME_FORMAT
     try:
         return formats.time_format(value, arg)
     except AttributeError:
diff --git a/tests/template_tests/filter_tests/test_date.py b/tests/template_tests/filter_tests/test_date.py
index 1740df47da..4c83068eb8 100644
--- a/tests/template_tests/filter_tests/test_date.py
+++ b/tests/template_tests/filter_tests/test_date.py
@@ -1,8 +1,8 @@
 from datetime import datetime, time
 
 from django.template.defaultfilters import date
-from django.test import SimpleTestCase
-from django.utils import timezone
+from django.test import SimpleTestCase, override_settings
+from django.utils import timezone, translation
 
 from ..utils import setup
 from .timezone_utils import TimezoneTestCase
@@ -20,6 +20,17 @@ class DateTests(TimezoneTestCase):
         output = self.engine.render_to_string('date02', {'d': datetime(2008, 1, 1)})
         self.assertEqual(output, 'Jan. 1, 2008')
 
+    @override_settings(USE_L10N=True)
+    @setup({'date02_l10n': '{{ d|date }}'})
+    def test_date02_l10n(self):
+        """
+        Without arg and when USE_L10N is True, the active language's DATE_FORMAT
+        is used.
+        """
+        with translation.override('fr'):
+            output = self.engine.render_to_string('date02_l10n', {'d': datetime(2008, 1, 1)})
+        self.assertEqual(output, '1 janvier 2008')
+
     @setup({'date03': '{{ d|date:"m" }}'})
     def test_date03(self):
         """
diff --git a/tests/template_tests/filter_tests/test_time.py b/tests/template_tests/filter_tests/test_time.py
index f5dc47813e..a05624a0e1 100644
--- a/tests/template_tests/filter_tests/test_time.py
+++ b/tests/template_tests/filter_tests/test_time.py
@@ -1,8 +1,8 @@
 from datetime import time
 
 from django.template.defaultfilters import time as time_filter
-from django.test import SimpleTestCase
-from django.utils import timezone
+from django.test import SimpleTestCase, override_settings
+from django.utils import timezone, translation
 
 from ..utils import setup
 from .timezone_utils import TimezoneTestCase
@@ -13,6 +13,18 @@ class TimeTests(TimezoneTestCase):
     #20693: Timezone support for the time template filter
     """
 
+    @setup({'time00': '{{ dt|time }}'})
+    def test_time00(self):
+        output = self.engine.render_to_string('time00', {'dt': time(16, 25)})
+        self.assertEqual(output, '4:25 p.m.')
+
+    @override_settings(USE_L10N=True)
+    @setup({'time00_l10n': '{{ dt|time }}'})
+    def test_time00_l10n(self):
+        with translation.override('fr'):
+            output = self.engine.render_to_string('time00_l10n', {'dt': time(16, 25)})
+        self.assertEqual(output, '16:25')
+
     @setup({'time01': '{{ dt|time:"e:O:T:Z" }}'})
     def test_time01(self):
         output = self.engine.render_to_string('time01', {'dt': self.now_tz_i})
-- 
2.18.1