Browse Source

date_format util

Rafał Pitoń 10 years ago
parent
commit
173660a43b
2 changed files with 22 additions and 2 deletions
  1. 15 1
      misago/core/tests/test_utils.py
  2. 7 1
      misago/core/utils.py

+ 15 - 1
misago/core/tests/test_utils.py

@@ -2,9 +2,11 @@
 from django.core.urlresolvers import reverse
 from django.test import TestCase
 from django.test.client import RequestFactory
+from django.utils import timezone
 
 from misago.core.utils import (clean_return_path, is_request_to_misago,
-                               slugify, time_amount, is_referer_local)
+                               slugify, time_amount, is_referer_local,
+                               date_format)
 
 
 VALID_PATHS = (
@@ -197,3 +199,15 @@ class TimeAmountTests(TestCase):
         self.assertEqual(time_amount(3661), "1 hour, 1 minute and 1 second")
         self.assertEqual(time_amount(2 * 3661),
                          "2 hours, 2 minutes and 2 seconds")
+
+
+class DateFormatTests(TestCase):
+    def test_format_datetime(self):
+        """no crash on datetime format"""
+        date_format(timezone.now())
+        date_format(timezone.now(), "H:i")
+
+    def test_format_date(self):
+        """no crash on date format"""
+        date_format(timezone.now().date())
+        date_format(timezone.now().date(), 'm.Y')

+ 7 - 1
misago/core/utils.py

@@ -4,7 +4,9 @@ from unidecode import unidecode
 
 from django.http import Http404
 from django.core.urlresolvers import resolve, reverse
-from django.template.defaultfilters import slugify as django_slugify
+from django.template.defaultfilters import (slugify as django_slugify,
+                                            date as dj_date_format)
+from django.utils import timezone
 from django.utils.translation import ugettext_lazy as _, ungettext_lazy
 
 
@@ -153,6 +155,10 @@ def time_amount(value):
         return _("%(first_part)s and %(and_part)s") % formats
 
 
+def date_format(date, format=None):
+    return dj_date_format(timezone.template_localtime(date), format)
+
+
 """
 MD subset for use for enchancing items descriptions
 """