django-admin2/djadmin2/tests/test_renderers.py

116 lines
3.2 KiB
Python
Raw Permalink Normal View History

2013-07-07 12:05:44 +00:00
import datetime as dt
from decimal import Decimal
from django.test import TestCase
2016-05-20 08:54:42 +00:00
from django.utils.translation import activate
2013-07-07 12:05:44 +00:00
from .. import renderers
2016-05-20 08:54:42 +00:00
from .models import RendererTestModel
2013-07-07 12:05:44 +00:00
class BooleanRendererTest(TestCase):
2013-07-07 12:05:44 +00:00
def setUp(self):
self.renderer = renderers.boolean_renderer
def test_boolean(self):
out1 = self.renderer(True, None)
self.assertIn('fa fa-check', out1)
2013-07-07 12:05:44 +00:00
out2 = self.renderer(False, None)
self.assertIn('fa fa-minus', out2)
2013-07-07 12:05:44 +00:00
def test_string(self):
out1 = self.renderer('yeah', None)
self.assertIn('fa fa-check', out1)
2013-07-07 12:05:44 +00:00
out2 = self.renderer('', None)
self.assertIn('fa fa-minus', out2)
2013-07-07 12:05:44 +00:00
class DatetimeRendererTest(TestCase):
def setUp(self):
self.renderer = renderers.datetime_renderer
def tearDown(self):
activate('en_US')
def test_date_german(self):
activate('de')
out = self.renderer(dt.date(2013, 7, 6), None)
self.assertEqual('6. Juli 2013', out)
def test_date_spanish(self):
activate('es')
out = self.renderer(dt.date(2013, 7, 6), None)
self.assertEqual('6 de Julio de 2013', out)
def test_date_default(self):
out = self.renderer(dt.date(2013, 7, 6), None)
self.assertEqual('July 6, 2013', out)
def test_time_german(self):
activate('de')
2014-09-28 15:58:01 +00:00
out = self.renderer(dt.time(13, 37, 1), None)
self.assertEqual('13:37', out)
2013-07-07 12:05:44 +00:00
def test_time_chinese(self):
activate('zh')
2014-09-28 15:58:01 +00:00
out = self.renderer(dt.time(13, 37, 1), None)
2013-07-07 12:05:44 +00:00
self.assertEqual('1:37 p.m.', out)
def test_datetime(self):
2014-09-28 15:58:01 +00:00
out = self.renderer(dt.datetime(2013, 7, 6, 13, 37, 1), None)
2013-07-07 12:05:44 +00:00
self.assertEqual('July 6, 2013, 1:37 p.m.', out)
def test_date_as_string(self):
out = self.renderer('13:37:01', None)
self.assertEqual('13:37', out)
2013-07-07 12:05:44 +00:00
# TODO test timezone localization
class TitleRendererTest(TestCase):
def setUp(self):
self.renderer = renderers.title_renderer
def testLowercase(self):
out = self.renderer('oh hello there!', None)
self.assertEqual('Oh Hello There!', out)
def testTitlecase(self):
out = self.renderer('Oh Hello There!', None)
self.assertEqual('Oh Hello There!', out)
def testUppercase(self):
out = self.renderer('OH HELLO THERE!', None)
self.assertEqual('Oh Hello There!', out)
class NumberRendererTest(TestCase):
def setUp(self):
self.renderer = renderers.number_renderer
def testInteger(self):
out = self.renderer(42, None)
self.assertEqual('42', out)
def testFloat(self):
out = self.renderer(42.5, None)
self.assertEqual('42.5', out)
def testEndlessFloat(self):
2016-05-07 20:59:15 +00:00
out = self.renderer(1.0 / 3, None)
self.assertEqual('0.3333333333333333', out)
2013-07-07 12:05:44 +00:00
def testPlainDecimal(self):
number = '0.123456789123456789123456789'
out = self.renderer(Decimal(number), None)
self.assertEqual(number, out)
def testFieldDecimal(self):
field = RendererTestModel._meta.get_field('decimal')
2013-07-07 12:05:44 +00:00
out = self.renderer(Decimal('0.123456789'), field)
self.assertEqual('0.12345', out)