def test_date_type_fmt(self): value = '10/06/2014' self.field['format'] = 'fmt:%d/%m/%Y' _type = types.DateType(self.field) self.assertEquals(_type.cast(value), date(2014, 6, 10))
def test_date_type_fmt_stripping_bug(self): value = '2014-06' self.field['format'] = 'fmt:%Y-%m' _type = types.DateType(self.field) self.assertEquals(_type.cast(value), date(2014, 6, 1))
def test_constraints_maximum_valid_value_equals(self): value = '1978-05-29' field = self._make_default_field(type='date', constraints={'maximum': '1978-05-29'}) _type = types.DateType(field) self.assertEqual(_type.cast(value), datetime.datetime.strptime(value, '%Y-%m-%d').date())
def test_constraints_enum_valid_value(self): '''value is in enum array''' value = "2015-10-22" field = self._make_default_field(type='date', constraints={'enum': ["2015-10-22"]}) _type = types.DateType(field) self.assertEqual(_type.cast(value), datetime.datetime.strptime(value, '%Y-%m-%d').date())
def test_constraints_minimum_invalid_value(self): value = '1978-05-29' field = self._make_default_field(type='date', constraints={'minimum': '1978-05-30'}) _type = types.DateType(field) with pytest.raises(exceptions.ConstraintError) as e: _type.cast(value) self.assertEqual(e.value.msg, "The field 'Name' must not be less than 1978-05-30")
def test_constraints_pattern_valid_value(self): '''value is valid for pattern''' value = '2015-01-23' field = self._make_default_field( type='date', constraints={"pattern": "2015-[0-9]{2}-[0-9]{2}"}) _type = types.DateType(field) self.assertEqual(_type.cast(value), datetime.datetime.strptime(value, '%Y-%m-%d').date())
def test_constraints_maximum_invalid_value(self): value = '1978-05-29' # value of maximum constraint should have the same format field = self._make_default_field(type='date', constraints={'maximum': '1978-05-28'}) _type = types.DateType(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")
def test_constraints_enum_invalid_value(self): '''value is not in enum array''' value = "2015-10-22" field = self._make_default_field(type='date', constraints={'enum': ["2015-10-23"]}) _type = types.DateType(field) with pytest.raises(exceptions.ConstraintError) as e: _type.cast(value) self.assertEqual( e.value.msg, "The value for field 'Name' " "must be in the enum array")
def test_constraints_pattern_invalid_value(self): '''value is invalid for pattern''' value = '2013-01-23' field = self._make_default_field( type='date', constraints={"pattern": "2015-[0-9]{2}-[0-9]{2}"}) _type = types.DateType(field) with pytest.raises(exceptions.ConstraintError) as e: _type.cast(value) self.assertEqual( e.value.msg, "The value for field 'Name' " "must match the pattern")
def test_date_type_with_already_cast_value(self): for value in [date(2015, 1, 1)]: for format in ['default', 'any', 'fmt:%Y-%m-%d']: self.field['format'] = format _type = types.DateType(self.field) self.assertEqual(_type.cast(value), value)
def test_valid_fmt_invalid_value(self): value = '2014/12/19' self.field['type'] = 'fmt:%m/%d/%y' _type = types.DateType(self.field) self.assertRaises(exceptions.InvalidDateType, _type.cast, value)
def test_date_type_any_parser_fail(self): value = '10th Jan nineteen sixty nine' self.field['format'] = 'any' _type = types.DateType(self.field) self.assertRaises(exceptions.InvalidDateType, _type.cast, value)
def test_non_iso_date_fails_for_default(self): value = '01-01-2019' _type = types.DateType(self.field) self.assertRaises(exceptions.InvalidDateType, _type.cast, value)
def test_date_type_any_true(self): value = '10th Jan 1969' self.field['format'] = 'any' _type = types.DateType(self.field) self.assertEquals(_type.cast(value), date(1969, 1, 10))
def test_date_from_string_iso_format(self): value = '2019-01-01' _type = types.DateType(self.field) self.assertEquals(_type.cast(value), date(2019, 1, 1))