mirror of
https://github.com/Hopiu/django-modeltranslation.git
synced 2026-04-08 15:50:58 +00:00
Added basic tests for DateField, DateTimeField and TimeField and added them to the list of supported fields.
This commit is contained in:
parent
4abf2dbb6f
commit
5affe7940c
5 changed files with 83 additions and 4 deletions
|
|
@ -166,8 +166,8 @@ Model Field 0.4 0.5
|
|||
``BooleanField`` |n| |y|
|
||||
``CharField`` |y| |y|
|
||||
``CommaSeparatedIntegerField`` |n| |y|
|
||||
``DateField`` |n| |u|
|
||||
``DateTimeField`` |n| |u|
|
||||
``DateField`` |n| |y|
|
||||
``DateTimeField`` |n| |y|
|
||||
``DecimalField`` |n| |y|
|
||||
``EmailField`` |i| |i|
|
||||
``FileField`` |y| |y|
|
||||
|
|
@ -183,7 +183,7 @@ Model Field 0.4 0.5
|
|||
``SlugField`` |i| |i|
|
||||
``SmallIntegerField`` |n| |i|
|
||||
``TextField`` |y| |y|
|
||||
``TimeField`` |n| |u|
|
||||
``TimeField`` |n| |y|
|
||||
``URLField`` |i| |i|
|
||||
``ForeignKey`` |n| |n|
|
||||
``OneToOneField`` |n| |n|
|
||||
|
|
|
|||
|
|
@ -22,6 +22,9 @@ SUPPORTED_FIELDS = (
|
|||
fields.FloatField,
|
||||
fields.DecimalField,
|
||||
fields.IPAddressField,
|
||||
fields.DateField,
|
||||
fields.DateTimeField,
|
||||
fields.TimeField,
|
||||
fields.files.FileField,
|
||||
fields.files.ImageField,
|
||||
)
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@ NOTE: Perhaps ModeltranslationTestBase in tearDownClass should reload some modul
|
|||
|
||||
"""
|
||||
from __future__ import with_statement # Python 2.5 compatibility
|
||||
import datetime
|
||||
from decimal import Decimal
|
||||
import os
|
||||
import shutil
|
||||
|
|
@ -667,6 +668,78 @@ class OtherFieldsTest(ModeltranslationTestBase):
|
|||
self.assertEqual(Decimal('0.23'), inst.decimal_de)
|
||||
self.assertEqual(Decimal('0.42'), inst.decimal_en)
|
||||
|
||||
def test_translated_models_date_instance(self):
|
||||
inst = OtherFieldsModel()
|
||||
inst.date = datetime.date(2012, 12, 31)
|
||||
self.assertEqual('de', get_language())
|
||||
self.assertEqual(datetime.date(2012, 12, 31), inst.date)
|
||||
self.assertEqual(datetime.date(2012, 12, 31), inst.date_de)
|
||||
self.assertEqual(None, inst.date_en)
|
||||
|
||||
inst.date = datetime.date(1999, 1, 1)
|
||||
inst.save()
|
||||
self.assertEqual(datetime.date(1999, 1, 1), inst.date)
|
||||
self.assertEqual(datetime.date(1999, 1, 1), inst.date_de)
|
||||
self.assertEqual(None, inst.date_en)
|
||||
|
||||
qs = OtherFieldsModel.objects.filter(date='1999-1-1')
|
||||
self.assertEqual(len(qs), 1)
|
||||
self.assertEqual(qs[0].date, datetime.date(1999, 1, 1))
|
||||
|
||||
trans_real.activate('en')
|
||||
inst.date = datetime.date(2012, 12, 31)
|
||||
self.assertEqual(datetime.date(2012, 12, 31), inst.date)
|
||||
self.assertEqual(datetime.date(1999, 1, 1), inst.date_de)
|
||||
self.assertEqual(datetime.date(2012, 12, 31), inst.date_en)
|
||||
|
||||
def test_translated_models_datetime_instance(self):
|
||||
inst = OtherFieldsModel()
|
||||
inst.datetime = datetime.datetime(2012, 12, 31, 23, 42)
|
||||
self.assertEqual('de', get_language())
|
||||
self.assertEqual(datetime.datetime(2012, 12, 31, 23, 42), inst.datetime)
|
||||
self.assertEqual(datetime.datetime(2012, 12, 31, 23, 42), inst.datetime_de)
|
||||
self.assertEqual(None, inst.datetime_en)
|
||||
|
||||
inst.datetime = datetime.datetime(1999, 1, 1, 23, 42)
|
||||
inst.save()
|
||||
self.assertEqual(datetime.datetime(1999, 1, 1, 23, 42), inst.datetime)
|
||||
self.assertEqual(datetime.datetime(1999, 1, 1, 23, 42), inst.datetime_de)
|
||||
self.assertEqual(None, inst.datetime_en)
|
||||
|
||||
qs = OtherFieldsModel.objects.filter(datetime='1999-1-1 23:42')
|
||||
self.assertEqual(len(qs), 1)
|
||||
self.assertEqual(qs[0].datetime, datetime.datetime(1999, 1, 1, 23, 42))
|
||||
|
||||
trans_real.activate('en')
|
||||
inst.datetime = datetime.datetime(2012, 12, 31, 23, 42)
|
||||
self.assertEqual(datetime.datetime(2012, 12, 31, 23, 42), inst.datetime)
|
||||
self.assertEqual(datetime.datetime(1999, 1, 1, 23, 42), inst.datetime_de)
|
||||
self.assertEqual(datetime.datetime(2012, 12, 31, 23, 42), inst.datetime_en)
|
||||
|
||||
def test_translated_models_time_instance(self):
|
||||
inst = OtherFieldsModel()
|
||||
inst.time = datetime.time(23, 42, 0)
|
||||
self.assertEqual('de', get_language())
|
||||
self.assertEqual(datetime.time(23, 42, 0), inst.time)
|
||||
self.assertEqual(datetime.time(23, 42, 0), inst.time_de)
|
||||
self.assertEqual(None, inst.time_en)
|
||||
|
||||
inst.time = datetime.time(01, 02, 03)
|
||||
inst.save()
|
||||
self.assertEqual(datetime.time(01, 02, 03), inst.time)
|
||||
self.assertEqual(datetime.time(01, 02, 03), inst.time_de)
|
||||
self.assertEqual(None, inst.time_en)
|
||||
|
||||
qs = OtherFieldsModel.objects.filter(time='01:02:03')
|
||||
self.assertEqual(len(qs), 1)
|
||||
self.assertEqual(qs[0].time, datetime.time(01, 02, 03))
|
||||
|
||||
trans_real.activate('en')
|
||||
inst.time = datetime.time(23, 42, 0)
|
||||
self.assertEqual(datetime.time(23, 42, 0), inst.time)
|
||||
self.assertEqual(datetime.time(01, 02, 03), inst.time_de)
|
||||
self.assertEqual(datetime.time(23, 42, 0), inst.time_en)
|
||||
|
||||
|
||||
class ModeltranslationTestRule1(ModeltranslationTestBase):
|
||||
"""
|
||||
|
|
|
|||
|
|
@ -44,6 +44,9 @@ class OtherFieldsModel(models.Model):
|
|||
float = models.FloatField(blank=True, null=True)
|
||||
decimal = models.DecimalField(max_digits=5, decimal_places=2, blank=True, null=True)
|
||||
ip = models.IPAddressField(blank=True, null=True)
|
||||
date = models.DateField(blank=True, null=True)
|
||||
datetime = models.DateTimeField(blank=True, null=True)
|
||||
time = models.TimeField(blank=True, null=True)
|
||||
# genericip = models.GenericIPAddressField(blank=True, null=True)
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@ class OtherFieldsModelTranslationOptions(TranslationOptions):
|
|||
# fields = ('int', 'boolean', 'nullboolean', 'csi', 'float', 'decimal',
|
||||
# 'ip', 'genericip')
|
||||
fields = ('int', 'boolean', 'nullboolean', 'csi', 'float', 'decimal',
|
||||
'ip',)
|
||||
'ip', 'date', 'datetime', 'time',)
|
||||
translator.register(OtherFieldsModel, OtherFieldsModelTranslationOptions)
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue