def test_time_invalid_type_format(self): value = 3.00 self.field['format'] = 'fmt:any' _type = types.TimeType(self.field) self.assertRaises(exceptions.InvalidTimeType, _type.cast, value) value = {} _type = types.TimeType(self.field) self.assertRaises(exceptions.InvalidTimeType, _type.cast, value) value = [] _type = types.TimeType(self.field) self.assertRaises(exceptions.InvalidTimeType, _type.cast, value)
def test_constraints_maximum_invalid_value(self): value = '12:30:20' field = self._make_default_field(type='time', constraints={'maximum': '11:30:20'}) _type = types.TimeType(field) with pytest.raises(exceptions.ConstraintError) as e: _type.cast(value) self.assertEqual(e.value.msg, "The field 'Name' must not be more than 11:30:20")
def test_constraints_maximum_valid_value_equals(self): value = '12:30:20' field = self._make_default_field(type='time', constraints={'maximum': '12:30:20'}) _type = types.TimeType(field) struct_time = time.strptime(value, '%H:%M:%S') expected_time = datetime.time(struct_time.tm_hour, struct_time.tm_min, struct_time.tm_sec) self.assertEqual(_type.cast(value), expected_time)
def test_time_type_with_already_cast_value(self): for value in [time(12, 0, 0)]: for format in ['default', 'any', 'fmt:any']: self.field['format'] = format _type = types.TimeType(self.field) self.assertEqual(_type.cast(value), value)
def test_time_type_format(self): value = '3:00' self.field['format'] = 'fmt:%H:%M' _type = types.TimeType(self.field) self.assertEquals(_type.cast(value), time(3))
def test_time_type_parsing(self): value = '3:00 am' self.field['format'] = 'any' _type = types.TimeType(self.field) self.assertEquals(_type.cast(value), time(3))
def test_time_type_non_iso_raises_error(self): value = '3 am' _type = types.TimeType(self.field) self.assertRaises(exceptions.InvalidTimeType, _type.cast, value)
def test_time_type_default(self): value = '06:00:00' _type = types.TimeType(self.field) self.assertEquals(_type.cast(value), time(6))