2014-11-12 09:32:44 +08:00
|
|
|
from datetime import datetime
|
|
|
|
|
2018-03-25 04:38:20 +08:00
|
|
|
from django.template import TemplateSyntaxError
|
2014-12-04 04:36:17 +08:00
|
|
|
from django.test import SimpleTestCase
|
2014-11-12 09:32:44 +08:00
|
|
|
from django.utils.formats import date_format
|
|
|
|
|
2014-12-07 16:43:10 +08:00
|
|
|
from ..utils import setup
|
2014-11-12 09:32:44 +08:00
|
|
|
|
|
|
|
|
2014-12-04 04:36:17 +08:00
|
|
|
class NowTagTests(SimpleTestCase):
|
2014-11-12 09:32:44 +08:00
|
|
|
@setup({"now01": '{% now "j n Y" %}'})
|
|
|
|
def test_now01(self):
|
|
|
|
"""
|
|
|
|
Simple case
|
|
|
|
"""
|
2014-12-07 16:43:10 +08:00
|
|
|
output = self.engine.render_to_string("now01")
|
2014-11-12 09:32:44 +08:00
|
|
|
self.assertEqual(
|
|
|
|
output,
|
|
|
|
"%d %d %d"
|
|
|
|
% (
|
|
|
|
datetime.now().day,
|
|
|
|
datetime.now().month,
|
|
|
|
datetime.now().year,
|
2022-02-04 03:24:19 +08:00
|
|
|
),
|
2014-11-12 09:32:44 +08:00
|
|
|
)
|
|
|
|
|
|
|
|
# Check parsing of locale strings
|
|
|
|
@setup({"now02": '{% now "DATE_FORMAT" %}'})
|
|
|
|
def test_now02(self):
|
2014-12-07 16:43:10 +08:00
|
|
|
output = self.engine.render_to_string("now02")
|
2014-11-12 09:32:44 +08:00
|
|
|
self.assertEqual(output, date_format(datetime.now()))
|
|
|
|
|
|
|
|
@setup({"now03": "{% now 'j n Y' %}"})
|
|
|
|
def test_now03(self):
|
|
|
|
"""
|
|
|
|
#15092 - Also accept simple quotes
|
|
|
|
"""
|
2014-12-07 16:43:10 +08:00
|
|
|
output = self.engine.render_to_string("now03")
|
2014-11-12 09:32:44 +08:00
|
|
|
self.assertEqual(
|
|
|
|
output,
|
|
|
|
"%d %d %d"
|
|
|
|
% (
|
|
|
|
datetime.now().day,
|
|
|
|
datetime.now().month,
|
|
|
|
datetime.now().year,
|
2022-02-04 03:24:19 +08:00
|
|
|
),
|
2014-11-12 09:32:44 +08:00
|
|
|
)
|
|
|
|
|
|
|
|
@setup({"now04": "{% now 'DATE_FORMAT' %}"})
|
|
|
|
def test_now04(self):
|
2014-12-07 16:43:10 +08:00
|
|
|
output = self.engine.render_to_string("now04")
|
2014-11-12 09:32:44 +08:00
|
|
|
self.assertEqual(output, date_format(datetime.now()))
|
|
|
|
|
|
|
|
@setup({"now05": "{% now 'j \"n\" Y'%}"})
|
|
|
|
def test_now05(self):
|
2014-12-07 16:43:10 +08:00
|
|
|
output = self.engine.render_to_string("now05")
|
2014-11-12 09:32:44 +08:00
|
|
|
self.assertEqual(
|
|
|
|
output,
|
|
|
|
'%d "%d" %d'
|
|
|
|
% (
|
|
|
|
datetime.now().day,
|
|
|
|
datetime.now().month,
|
|
|
|
datetime.now().year,
|
2022-02-04 03:24:19 +08:00
|
|
|
),
|
2014-11-12 09:32:44 +08:00
|
|
|
)
|
|
|
|
|
|
|
|
@setup({"now06": "{% now \"j 'n' Y\"%}"})
|
|
|
|
def test_now06(self):
|
2014-12-07 16:43:10 +08:00
|
|
|
output = self.engine.render_to_string("now06")
|
2014-11-12 09:32:44 +08:00
|
|
|
self.assertEqual(
|
|
|
|
output,
|
|
|
|
"%d '%d' %d"
|
|
|
|
% (
|
|
|
|
datetime.now().day,
|
|
|
|
datetime.now().month,
|
|
|
|
datetime.now().year,
|
2022-02-04 03:24:19 +08:00
|
|
|
),
|
2014-11-12 09:32:44 +08:00
|
|
|
)
|
|
|
|
|
|
|
|
@setup({"now07": '{% now "j n Y" as N %}-{{N}}-'})
|
|
|
|
def test_now07(self):
|
2014-12-07 16:43:10 +08:00
|
|
|
output = self.engine.render_to_string("now07")
|
2014-11-12 09:32:44 +08:00
|
|
|
self.assertEqual(
|
|
|
|
output,
|
|
|
|
"-%d %d %d-"
|
|
|
|
% (
|
|
|
|
datetime.now().day,
|
|
|
|
datetime.now().month,
|
|
|
|
datetime.now().year,
|
2022-02-04 03:24:19 +08:00
|
|
|
),
|
2014-11-12 09:32:44 +08:00
|
|
|
)
|
2018-03-25 04:38:20 +08:00
|
|
|
|
|
|
|
@setup({"no_args": "{% now %}"})
|
|
|
|
def test_now_args(self):
|
|
|
|
with self.assertRaisesMessage(
|
|
|
|
TemplateSyntaxError, "'now' statement takes one argument"
|
|
|
|
):
|
|
|
|
self.engine.render_to_string("no_args")
|