summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--designate/objects/rrdata_mx.py3
-rw-r--r--designate/tests/unit/objects/test_mx_object.py13
2 files changed, 15 insertions, 1 deletions
diff --git a/designate/objects/rrdata_mx.py b/designate/objects/rrdata_mx.py
index caf6dedb..2dbd2cab 100644
--- a/designate/objects/rrdata_mx.py
+++ b/designate/objects/rrdata_mx.py
@@ -38,6 +38,9 @@ class MX(Record):
if repr(int(priority)) != priority:
raise ValueError('Value is not an integer')
+ if not exchange.endswith('.'):
+ raise ValueError('Domain %s does not end with a dot' % exchange)
+
self.priority = int(priority)
self.exchange = exchange
diff --git a/designate/tests/unit/objects/test_mx_object.py b/designate/tests/unit/objects/test_mx_object.py
index 589e5be8..bd2d77ab 100644
--- a/designate/tests/unit/objects/test_mx_object.py
+++ b/designate/tests/unit/objects/test_mx_object.py
@@ -34,7 +34,18 @@ class MXRecordTest(oslotest.base.BaseTestCase):
record_set = objects.RecordSet(
name='www.example.org.', type='MX',
records=objects.RecordList(objects=[
- objects.Record(data='-0 mail.example.org.',
+ objects.Record(data='-0 mail.example.test.',
+ status='ACTIVE'),
+ ])
+ )
+
+ self.assertRaises(InvalidObject, record_set.validate)
+
+ def test_validate_mx_not_fqdn(self):
+ record_set = objects.RecordSet(
+ name='www.example.org.', type='MX',
+ records=objects.RecordList(objects=[
+ objects.Record(data='10 mail.example.test',
status='ACTIVE'),
])
)