1
0
Fork 0
mirror of https://github.com/yweber/lodel2.git synced 2025-10-30 19:19:03 +01:00

Modified test for datetime datahandler

This commit is contained in:
m.orban 2016-09-07 14:07:04 +02:00
commit a6cc69294a
2 changed files with 14 additions and 15 deletions

View file

@ -117,13 +117,12 @@ class DateTime(DataField):
value = super()._check_data_value(value)
if isinstance(value,str):
try:
datetime_value = datetime.datetime.fromtimestamp(time.mktime(time.strptime(value, self.datetime_format)))
except ValueError:
value = datetime.datetime.fromtimestamp(time.mktime(time.strptime(value, self.datetime_format)))
except ValueError:
raise FieldValidationError("The value '%s' cannot be converted as a datetime" % value)
elif not isinstance(value, datetime.datetime):
if not isinstance(value, datetime.datetime):
raise FieldValidationError("Tue value has to be a string or a datetime")
else:
return value
return value
def _construct_data(self, emcomponent, fname, datas, cur_value):
if (self.now_on_create and cur_value is None) or self.now_on_update:

View file

@ -1,25 +1,25 @@
import unittest
import datetime
from lodel.leapi.datahandlers.datas import DateTime
from lodel.exceptions import *
class DatetimeTestCase(unittest.TestCase):
def test_datetime_check_data_value(self):
test_datetime = DateTime()
test_value = '2016-01-01'
_, error = test_datetime.check_data_value(test_value)
self.assertIsNone(error)
for test_value in ['2016-01-01']:
value = test_datetime._check_data_value(test_value)
self.assertEqual(value, datetime.datetime(2016, 1, 1, 0, 0))
def test_datetime_check_data_value_with_custom_format(self):
test_value = '2016-01-01T10:20:30Z'
test_datetime = DateTime(format='%Y-%m-%dT%H:%M:%SZ')
_, error = test_datetime.check_data_value(test_value)
self.assertIsNone(error)
value = test_datetime._check_data_value(test_value)
self.assertEqual(value, datetime.datetime(2016, 1, 1, 10, 20, 30))
def test_check_bad_value(self):
test_datetime = DateTime(now_on_create=True, now_on_update=True)
test_value = '2016-01-01-test'
_, error = test_datetime.check_data_value(test_value)
self.assertIsNotNone(error)
for test_value in ['2016-01-01-test', '2016/01/01', 2016]:
with self.assertRaises(FieldValidationError):
test_datetime._check_data_value(test_value)