1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98
|
from datetime import datetime
from django.template import TemplateSyntaxError
from django.test import SimpleTestCase
from django.utils.formats import date_format
from ..utils import setup
class NowTagTests(SimpleTestCase):
@setup({"now01": '{% now "j n Y" %}'})
def test_now01(self):
"""
Simple case
"""
output = self.engine.render_to_string("now01")
self.assertEqual(
output,
"%d %d %d"
% (
datetime.now().day,
datetime.now().month,
datetime.now().year,
),
)
# Check parsing of locale strings
@setup({"now02": '{% now "DATE_FORMAT" %}'})
def test_now02(self):
output = self.engine.render_to_string("now02")
self.assertEqual(output, date_format(datetime.now()))
@setup({"now03": "{% now 'j n Y' %}"})
def test_now03(self):
"""
#15092 - Also accept simple quotes
"""
output = self.engine.render_to_string("now03")
self.assertEqual(
output,
"%d %d %d"
% (
datetime.now().day,
datetime.now().month,
datetime.now().year,
),
)
@setup({"now04": "{% now 'DATE_FORMAT' %}"})
def test_now04(self):
output = self.engine.render_to_string("now04")
self.assertEqual(output, date_format(datetime.now()))
@setup({"now05": "{% now 'j \"n\" Y'%}"})
def test_now05(self):
output = self.engine.render_to_string("now05")
self.assertEqual(
output,
'%d "%d" %d'
% (
datetime.now().day,
datetime.now().month,
datetime.now().year,
),
)
@setup({"now06": "{% now \"j 'n' Y\"%}"})
def test_now06(self):
output = self.engine.render_to_string("now06")
self.assertEqual(
output,
"%d '%d' %d"
% (
datetime.now().day,
datetime.now().month,
datetime.now().year,
),
)
@setup({"now07": '{% now "j n Y" as N %}-{{N}}-'})
def test_now07(self):
output = self.engine.render_to_string("now07")
self.assertEqual(
output,
"-%d %d %d-"
% (
datetime.now().day,
datetime.now().month,
datetime.now().year,
),
)
@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")
|