def test_constraints_maximum_valid_value_equals(self): value = '1978-05-29T12:30:20Z' field = self._make_default_field( type='datetime', constraints={'maximum': '1978-05-29T12:30:20Z'}) _type = types.DateTimeType(field) self.assertEqual( _type.cast(value), datetime.datetime.strptime(value, '%Y-%m-%dT%H:%M:%SZ'))
def test_constraints_maximum_invalid_value(self): value = '1978-05-29T12:30:20Z' field = self._make_default_field( type='datetime', constraints={'maximum': '1978-05-28T12:30:20Z'}) _type = types.DateTimeType(field) with pytest.raises(exceptions.ConstraintError) as e: _type.cast(value) self.assertEqual( e.value.msg, "The field 'Name' must not be more than " "1978-05-28 12:30:20")
def test_datetime_type_with_already_cast_value(self): for value in [datetime(2015, 1, 1, 12, 0, 0)]: for format in ['default', 'any', 'fmt:any']: self.field['format'] = format _type = types.DateTimeType(self.field) self.assertEqual(_type.cast(value), value)
def test_invalid_date_format(self): value = '21/11/06 16:30' self.field['format'] = 'fmt:notavalidformat' _type = types.DateTimeType(self.field) self.assertRaises(exceptions.InvalidDateTimeType, _type.cast, value)
def test_unparsable_date_raises_exception(self): value = 'the land before time' self.field['format'] = 'any' _type = types.DateTimeType(self.field) self.assertRaises(exceptions.InvalidDateTimeType, _type.cast, value)
def test_non_iso_datetime_fails_for_default(self): value = 'Mon 1st Jan 2014 9 am' _type = types.DateTimeType(self.field) self.assertRaises(exceptions.InvalidDateTimeType, _type.cast, value)
def test_specified_format(self): value = '21/11/06 16:30' self.field['format'] = 'fmt:%d/%m/%y %H:%M' _type = types.DateTimeType(self.field) self.assertEquals(_type.cast(value), datetime(2006, 11, 21, 16, 30))
def test_any_parser_guessing(self): value = '10th Jan 1969 9 am' self.field['format'] = 'any' _type = types.DateTimeType(self.field) self.assertEquals(_type.cast(value), datetime(1969, 1, 10, 9))
def test_valid_iso_datetime(self): value = '2014-01-01T06:00:00Z' _type = types.DateTimeType(self.field) self.assertEquals(_type.cast(value), datetime(2014, 1, 1, 6))