Update Zerigo DNS driver to set Record.name attribute for records for bare
domains to None instead of an empty string.


Project: http://git-wip-us.apache.org/repos/asf/libcloud/repo
Commit: http://git-wip-us.apache.org/repos/asf/libcloud/commit/0df3b71b
Tree: http://git-wip-us.apache.org/repos/asf/libcloud/tree/0df3b71b
Diff: http://git-wip-us.apache.org/repos/asf/libcloud/diff/0df3b71b

Branch: refs/heads/trunk
Commit: 0df3b71b0c4a5bca67460e05db5908d4dc5089f1
Parents: 81028e6
Author: Tomaz Muraus <[email protected]>
Authored: Sat Jan 18 01:30:53 2014 +0100
Committer: Tomaz Muraus <[email protected]>
Committed: Sat Jan 18 01:30:53 2014 +0100

----------------------------------------------------------------------
 libcloud/dns/drivers/zerigo.py                  |  3 +++
 .../test/dns/fixtures/zerigo/list_records.xml   | 26 ++++++++++++++++++++
 libcloud/test/dns/test_zerigo.py                | 10 +++++++-
 3 files changed, 38 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/libcloud/blob/0df3b71b/libcloud/dns/drivers/zerigo.py
----------------------------------------------------------------------
diff --git a/libcloud/dns/drivers/zerigo.py b/libcloud/dns/drivers/zerigo.py
index db2ef07..50e3ed0 100644
--- a/libcloud/dns/drivers/zerigo.py
+++ b/libcloud/dns/drivers/zerigo.py
@@ -425,6 +425,9 @@ class ZerigoDNSDriver(DNSDriver):
         priority = findtext(element=elem, xpath='priority', no_text_value=None)
         ttl = findtext(element=elem, xpath='ttl', no_text_value=None)
 
+        if not name:
+            name = None
+
         if ttl:
             ttl = int(ttl)
 

http://git-wip-us.apache.org/repos/asf/libcloud/blob/0df3b71b/libcloud/test/dns/fixtures/zerigo/list_records.xml
----------------------------------------------------------------------
diff --git a/libcloud/test/dns/fixtures/zerigo/list_records.xml 
b/libcloud/test/dns/fixtures/zerigo/list_records.xml
index f0826cf..f226162 100644
--- a/libcloud/test/dns/fixtures/zerigo/list_records.xml
+++ b/libcloud/test/dns/fixtures/zerigo/list_records.xml
@@ -25,4 +25,30 @@
     <updated-at type="datetime">2008-12-07T02:51:13Z</updated-at>
     <zone-id type="integer">12345678</zone-id>
   </host>
+  <host>
+    <created-at type="datetime">2008-12-07T02:51:13Z</created-at>
+    <data>172.16.16.3</data>
+    <fqdn>test2.example.com</fqdn>
+    <host-type>A</host-type>
+    <hostname></hostname>
+    <id type="integer">23456789</id>
+    <notes nil="true"/>
+    <priority type="integer" nil="true"/>
+    <ttl type="integer">3600</ttl>
+    <updated-at type="datetime">2008-12-07T02:51:13Z</updated-at>
+    <zone-id type="integer">12345678</zone-id>
+  </host>
+  <host>
+    <created-at type="datetime">2008-12-07T02:51:13Z</created-at>
+    <data>172.16.16.4</data>
+    <fqdn>test4.example.com</fqdn>
+    <host-type>A</host-type>
+    <id type="integer">23456789</id>
+    <notes nil="true"/>
+    <priority type="integer" nil="true"/>
+    <ttl type="integer">3600</ttl>
+    <updated-at type="datetime">2008-12-07T02:51:13Z</updated-at>
+    <zone-id type="integer">12345678</zone-id>
+  </host>
+
 </hosts>

http://git-wip-us.apache.org/repos/asf/libcloud/blob/0df3b71b/libcloud/test/dns/test_zerigo.py
----------------------------------------------------------------------
diff --git a/libcloud/test/dns/test_zerigo.py b/libcloud/test/dns/test_zerigo.py
index f74d1ec..7897c00 100644
--- a/libcloud/test/dns/test_zerigo.py
+++ b/libcloud/test/dns/test_zerigo.py
@@ -65,7 +65,7 @@ class ZerigoTests(unittest.TestCase):
         zone = self.driver.list_zones()[0]
         records = list(self.driver.list_records(zone=zone))
 
-        self.assertEqual(len(records), 2)
+        self.assertEqual(len(records), 4)
         self.assertEqual(records[0].name, 'www')
         self.assertEqual(records[0].type, RecordType.A)
         self.assertEqual(records[0].data, '172.16.16.1')
@@ -76,6 +76,14 @@ class ZerigoTests(unittest.TestCase):
         self.assertEqual(records[1].name, 'test')
         self.assertEqual(records[1].extra['ttl'], 3600)
 
+    def test_record_with_empty_name(self):
+        zone = self.driver.list_zones()[0]
+        record1 = list(self.driver.list_records(zone=zone))[-1]
+        record2 = list(self.driver.list_records(zone=zone))[-2]
+
+        self.assertEqual(record1.name, None)
+        self.assertEqual(record2.name, None)
+
     def test_list_records_no_results(self):
         zone = self.driver.list_zones()[0]
         ZerigoMockHttp.type = 'NO_RESULTS'

Reply via email to