From 68580ac25b7ddbc2471eaaadfe12733001aed7ac Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Wed, 17 Apr 2019 20:36:41 +0800 Subject: [PATCH] Normalize CNAME/ALIAS/PTR value to lower-case --- octodns/record/__init__.py | 2 ++ tests/test_octodns_record.py | 43 ++++++++++++++++++++++++++++++++++-- 2 files changed, 43 insertions(+), 2 deletions(-) diff --git a/octodns/record/__init__.py b/octodns/record/__init__.py index ff162df..dca6100 100644 --- a/octodns/record/__init__.py +++ b/octodns/record/__init__.py @@ -714,6 +714,8 @@ class _TargetValue(object): @classmethod def process(self, value): + if value: + return value.lower() return value diff --git a/tests/test_octodns_record.py b/tests/test_octodns_record.py index 4171e80..53bc5e7 100644 --- a/tests/test_octodns_record.py +++ b/tests/test_octodns_record.py @@ -8,8 +8,8 @@ from __future__ import absolute_import, division, print_function, \ from unittest import TestCase from octodns.record import ARecord, AaaaRecord, AliasRecord, CaaRecord, \ - CnameRecord, Create, Delete, GeoValue, MxRecord, NaptrRecord, \ - NaptrValue, NsRecord, Record, SshfpRecord, SpfRecord, SrvRecord, \ + CnameRecord, Create, Delete, GeoValue, MxRecord, NaptrRecord, NaptrValue, \ + NsRecord, PtrRecord, Record, SshfpRecord, SpfRecord, SrvRecord, \ TxtRecord, Update, ValidationError, _Dynamic, _DynamicPool, _DynamicRule from octodns.zone import Zone @@ -27,6 +27,45 @@ class TestRecord(TestCase): }) self.assertEquals('mixedcase', record.name) + def test_alias_lowering_value(self): + upper_record = AliasRecord(self.zone, 'aliasUppwerValue', { + 'ttl': 30, + 'type': 'ALIAS', + 'value': 'GITHUB.COM', + }) + lower_record = AliasRecord(self.zone, 'aliasLowerValue', { + 'ttl': 30, + 'type': 'ALIAS', + 'value': 'github.com', + }) + self.assertEquals(upper_record.value, lower_record.value) + + def test_cname_lowering_value(self): + upper_record = CnameRecord(self.zone, 'CnameUppwerValue', { + 'ttl': 30, + 'type': 'CNAME', + 'value': 'GITHUB.COM', + }) + lower_record = CnameRecord(self.zone, 'CnameLowerValue', { + 'ttl': 30, + 'type': 'CNAME', + 'value': 'github.com', + }) + self.assertEquals(upper_record.value, lower_record.value) + + def test_ptr_lowering_value(self): + upper_record = PtrRecord(self.zone, 'PtrUppwerValue', { + 'ttl': 30, + 'type': 'PTR', + 'value': 'GITHUB.COM', + }) + lower_record = PtrRecord(self.zone, 'PtrLowerValue', { + 'ttl': 30, + 'type': 'PTR', + 'value': 'github.com', + }) + self.assertEquals(upper_record.value, lower_record.value) + def test_a_and_record(self): a_values = ['1.2.3.4', '2.2.3.4'] a_data = {'ttl': 30, 'values': a_values}