Browse Source

Pass cls._type, not cls/record_cls to validate

pull/307/head
Ross McFarland 7 years ago
parent
commit
e3b0ce9dcf
No known key found for this signature in database GPG Key ID: 61C10C4FC8FE4A89
1 changed files with 17 additions and 16 deletions
  1. +17
    -16
      octodns/record.py

+ 17
- 16
octodns/record.py View File

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


Loading…
Cancel
Save