mirror of
https://github.com/github/octodns.git
synced 2024-05-11 05:55:00 +00:00
Add a validation to catch name=@ and suggest name='' instead
This commit is contained in:
@@ -124,6 +124,8 @@ class Record(EqualityTupleMixin):
|
||||
@classmethod
|
||||
def validate(cls, name, fqdn, data):
|
||||
reasons = []
|
||||
if name == '@':
|
||||
reasons.append('invalid name "@", use "" instead')
|
||||
n = len(fqdn)
|
||||
if n > 253:
|
||||
reasons.append(f'invalid fqdn, "{fqdn}" is too long at {n} '
|
||||
|
||||
@@ -1643,6 +1643,17 @@ class TestRecordValidation(TestCase):
|
||||
zone = Zone('unit.tests.', [])
|
||||
|
||||
def test_base(self):
|
||||
# name = '@'
|
||||
with self.assertRaises(ValidationError) as ctx:
|
||||
name = '@'
|
||||
Record.new(self.zone, name, {
|
||||
'ttl': 300,
|
||||
'type': 'A',
|
||||
'value': '1.2.3.4',
|
||||
})
|
||||
reason = ctx.exception.reasons[0]
|
||||
self.assertTrue(reason.startswith('invalid name "@", use "" instead'))
|
||||
|
||||
# fqdn length, DNS defins max as 253
|
||||
with self.assertRaises(ValidationError) as ctx:
|
||||
# The . will put this over the edge
|
||||
|
||||
Reference in New Issue
Block a user