1
0
mirror of https://github.com/github/octodns.git synced 2024-05-11 05:55:00 +00:00

Pass cls._type, not cls/record_cls to validate

This commit is contained in:
Ross McFarland
2018-12-06 06:17:47 -08:00
parent 0114e54bd3
commit e3b0ce9dcf

View File

@@ -262,7 +262,7 @@ class _ValuesMixin(object):
except KeyError:
values = []
reasons.extend(cls._value_type.validate(values, cls))
reasons.extend(cls._value_type.validate(values, cls._type))
return reasons
@@ -317,7 +317,7 @@ class _GeoMixin(_ValuesMixin):
# TODO: validate legal codes
for code, values in geo.items():
reasons.extend(GeoValue._validate_geo(code))
reasons.extend(cls._value_type.validate(values, cls))
reasons.extend(cls._value_type.validate(values, cls._type))
except KeyError:
pass
return reasons
@@ -362,7 +362,8 @@ class _ValueMixin(object):
@classmethod
def validate(cls, name, data):
reasons = super(_ValueMixin, cls).validate(name, data)
reasons.extend(cls._value_type.validate(data.get('value', None), cls))
reasons.extend(cls._value_type.validate(data.get('value', None),
cls._type))
return reasons
def __init__(self, zone, name, data, source=None):
@@ -502,7 +503,8 @@ class _DynamicMixin(object):
try:
value = value['value']
reasons.extend(cls._value_type.validate(value, cls))
reasons.extend(cls._value_type.validate(value,
cls._type))
except KeyError:
reasons.append('missing value in pool "{}" '
'value {}'.format(_id, value_num))
@@ -620,8 +622,7 @@ class _DynamicMixin(object):
class Ipv4List(object):
@classmethod
# TODO: remove record_cls it's redudant (cls)
def validate(cls, data, record_cls):
def validate(cls, data, _type):
if not isinstance(data, (list, tuple)):
data = (data,)
if len(data) == 0:
@@ -647,7 +648,7 @@ class Ipv4List(object):
class Ipv6List(object):
@classmethod
def validate(cls, data, record_cls):
def validate(cls, data, _type):
if not isinstance(data, (list, tuple)):
data = (data,)
if len(data) == 0:
@@ -673,7 +674,7 @@ class Ipv6List(object):
class _TargetValue(object):
@classmethod
def validate(cls, data, record_cls):
def validate(cls, data, _type):
reasons = []
if data == '':
reasons.append('empty value')
@@ -681,7 +682,7 @@ class _TargetValue(object):
reasons.append('missing value')
elif not data.endswith('.'):
reasons.append('{} value "{}" missing trailing .'
.format(record_cls._type, data))
.format(_type, data))
return reasons
@classmethod
@@ -716,7 +717,7 @@ class CaaValue(object):
# https://tools.ietf.org/html/rfc6844#page-5
@classmethod
def validate(cls, data, record_cls):
def validate(cls, data, _type):
if not isinstance(data, (list, tuple)):
data = (data,)
reasons = []
@@ -783,7 +784,7 @@ class CnameRecord(_DynamicMixin, _ValueMixin, Record):
class MxValue(object):
@classmethod
def validate(cls, data, record_cls):
def validate(cls, data, _type):
if not isinstance(data, (list, tuple)):
data = (data,)
reasons = []
@@ -851,7 +852,7 @@ class NaptrValue(object):
VALID_FLAGS = ('S', 'A', 'U', 'P')
@classmethod
def validate(cls, data, record_cls):
def validate(cls, data, _type):
if not isinstance(data, (list, tuple)):
data = (data,)
reasons = []
@@ -936,7 +937,7 @@ class NaptrRecord(_ValuesMixin, Record):
class _NsValue(object):
@classmethod
def validate(cls, data, record_cls):
def validate(cls, data, _type):
if not data:
return ['missing value(s)']
elif not isinstance(data, (list, tuple)):
@@ -972,7 +973,7 @@ class SshfpValue(object):
VALID_FINGERPRINT_TYPES = (1, 2)
@classmethod
def validate(cls, data, record_cls):
def validate(cls, data, _type):
if not isinstance(data, (list, tuple)):
data = (data,)
reasons = []
@@ -1055,7 +1056,7 @@ class _ChunkedValue(object):
_unescaped_semicolon_re = re.compile(r'\w;')
@classmethod
def validate(cls, data, record_cls):
def validate(cls, data, _type):
if not data:
return ['missing value(s)']
elif not isinstance(data, (list, tuple)):
@@ -1084,7 +1085,7 @@ class SpfRecord(_ChunkedValuesMixin, Record):
class SrvValue(object):
@classmethod
def validate(cls, data, record_cls):
def validate(cls, data, _type):
if not isinstance(data, (list, tuple)):
data = (data,)
reasons = []