django-admin2/djadmin2/tests/test_renderers.py
Andrews Medina 1d43c71829 Fix tests (#448)
* tox: disable development mode

* fix django-extra-views and djangorestframework versions

* using get_field instead get_field_by_name

to fix compatibility with Django 1.10

* travis: dont test Django 1.10 with Python 3.3
2016-11-13 11:47:08 +06:00

122 lines
3.4 KiB
Python

# -*- coding: utf-8 -*-
from __future__ import division, absolute_import, unicode_literals
import datetime as dt
from decimal import Decimal
from django.test import TestCase
from django.utils import six
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)
if six.PY2:
self.assertEqual('0.333333333333', out)
else:
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)