Commit 025a9588 by Don Mitchell

Generate TypeError if from or to_json fail.

parent 7615a063
...@@ -58,8 +58,7 @@ class Date(ModelType): ...@@ -58,8 +58,7 @@ class Date(ModelType):
else: else:
msg = "Field {0} has bad value '{1}'".format( msg = "Field {0} has bad value '{1}'".format(
self._name, field) self._name, field)
log.warning(msg) raise TypeError(msg)
return None
def to_json(self, value): def to_json(self, value):
""" """
...@@ -76,6 +75,8 @@ class Date(ModelType): ...@@ -76,6 +75,8 @@ class Date(ModelType):
return value.strftime('%Y-%m-%dT%H:%M:%SZ') return value.strftime('%Y-%m-%dT%H:%M:%SZ')
else: else:
return value.isoformat() return value.isoformat()
else:
raise TypeError("Cannot convert {} to json".format(value))
TIMEDELTA_REGEX = re.compile(r'^((?P<days>\d+?) day(?:s?))?(\s)?((?P<hours>\d+?) hour(?:s?))?(\s)?((?P<minutes>\d+?) minute(?:s)?)?(\s)?((?P<seconds>\d+?) second(?:s)?)?$') TIMEDELTA_REGEX = re.compile(r'^((?P<days>\d+?) day(?:s?))?(\s)?((?P<hours>\d+?) hour(?:s?))?(\s)?((?P<minutes>\d+?) minute(?:s)?)?(\s)?((?P<seconds>\d+?) second(?:s)?)?$')
......
...@@ -44,7 +44,8 @@ class DateTest(unittest.TestCase): ...@@ -44,7 +44,8 @@ class DateTest(unittest.TestCase):
def test_return_None(self): def test_return_None(self):
self.assertIsNone(DateTest.date.from_json("")) self.assertIsNone(DateTest.date.from_json(""))
self.assertIsNone(DateTest.date.from_json(None)) self.assertIsNone(DateTest.date.from_json(None))
self.assertIsNone(DateTest.date.from_json(['unknown value'])) with self.assertRaises(TypeError):
DateTest.date.from_json(['unknown value'])
def test_old_due_date_format(self): def test_old_due_date_format(self):
current = datetime.datetime.today() current = datetime.datetime.today()
...@@ -83,6 +84,8 @@ class DateTest(unittest.TestCase): ...@@ -83,6 +84,8 @@ class DateTest(unittest.TestCase):
DateTest.date.to_json( DateTest.date.to_json(
DateTest.date.from_json("2012-12-31T23:00:01-01:00")), DateTest.date.from_json("2012-12-31T23:00:01-01:00")),
"2012-12-31T23:00:01-01:00") "2012-12-31T23:00:01-01:00")
with self.assertRaises(TypeError):
DateTest.date.to_json('2012-12-31T23:00:01-01:00')
class TimedeltaTest(unittest.TestCase): class TimedeltaTest(unittest.TestCase):
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment