mirror of
https://github.com/jazzband/django-admin2.git
synced 2026-03-16 22:20:24 +00:00
115 lines
3.2 KiB
Python
115 lines
3.2 KiB
Python
import datetime as dt
|
|
from decimal import Decimal
|
|
|
|
from django.test import TestCase
|
|
from django.utils.translation import activate
|
|
|
|
from .. import renderers
|
|
from .models import RendererTestModel
|
|
|
|
|
|
class BooleanRendererTest(TestCase):
|
|
|
|
def setUp(self):
|
|
self.renderer = renderers.boolean_renderer
|
|
|
|
def test_boolean(self):
|
|
out1 = self.renderer(True, None)
|
|
self.assertIn('fa fa-check', out1)
|
|
out2 = self.renderer(False, None)
|
|
self.assertIn('fa fa-minus', out2)
|
|
|
|
def test_string(self):
|
|
out1 = self.renderer('yeah', None)
|
|
self.assertIn('fa fa-check', out1)
|
|
out2 = self.renderer('', None)
|
|
self.assertIn('fa fa-minus', out2)
|
|
|
|
|
|
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')
|
|
out = self.renderer(dt.time(13, 37, 1), None)
|
|
self.assertEqual('13:37', out)
|
|
|
|
def test_time_chinese(self):
|
|
activate('zh')
|
|
out = self.renderer(dt.time(13, 37, 1), None)
|
|
self.assertEqual('1:37 p.m.', out)
|
|
|
|
def test_datetime(self):
|
|
out = self.renderer(dt.datetime(2013, 7, 6, 13, 37, 1), None)
|
|
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)
|
|
|
|
# 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):
|
|
out = self.renderer(1.0 / 3, None)
|
|
self.assertEqual('0.3333333333333333', out)
|
|
|
|
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')
|
|
out = self.renderer(Decimal('0.123456789'), field)
|
|
self.assertEqual('0.12345', out)
|