def test_data_converter(self): from plone.app.z3cform.widget import DatetimeWidgetConverter converter = DatetimeWidgetConverter(self.field, self.widget) self.assertEqual( converter.toFieldValue(''), converter.field.missing_value, ) self.assertEqual( converter.toFieldValue('2000-10-30 15:40'), datetime(2000, 10, 30, 15, 40), ) self.assertEqual( converter.toFieldValue('21-10-30 15:40'), datetime(21, 10, 30, 15, 40), ) self.assertEqual( converter.toWidgetValue(converter.field.missing_value), '', ) self.assertEqual( converter.toWidgetValue(datetime(2000, 10, 30, 15, 40)), '2000-10-30 15:40', ) self.assertEqual( converter.toWidgetValue(datetime(21, 10, 30, 15, 40)), '21-10-30 15:40', )
def test_data_converter__no_timezone(self): """When no timezone is set, don't apply one. """ from plone.app.z3cform.widget import DatetimeWidgetConverter context = Mock() dt = datetime(2013, 11, 13, 10, 20) setattr(context, self.field.getName(), dt) self.widget.context = context self.widget.default_timezone = None converter = DatetimeWidgetConverter(self.field, self.widget) self.assertEqual( converter.toFieldValue('2013-11-13 10:20'), datetime(2013, 11, 13, 10, 20), ) # cleanup self.widget.context = None self.widget.default_timezone = None
def test_data_converter__timezone_id(self): """When a (pytz) timezone id is set, use that. """ from plone.app.z3cform.widget import DatetimeWidgetConverter context = Mock() dt = datetime(2013, 11, 13, 10, 20) setattr(context, self.field.getName(), dt) self.widget.context = context self.widget.default_timezone = 'Europe/Amsterdam' tz = pytz.timezone('Europe/Amsterdam') converter = DatetimeWidgetConverter(self.field, self.widget) self.assertEqual( converter.toFieldValue('2013-11-13 10:20'), tz.localize(datetime(2013, 11, 13, 10, 20)), ) # cleanup self.widget.context = None self.widget.default_timezone = None