You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@libcloud.apache.org by to...@apache.org on 2011/09/24 00:53:38 UTC

svn commit: r1175064 - in /libcloud/trunk/test/dns: ./ fixtures/linode/

Author: tomaz
Date: Fri Sep 23 22:53:37 2011
New Revision: 1175064

URL: http://svn.apache.org/viewvc?rev=1175064&view=rev
Log:
Add missing test for Linode DNS driver.

Added:
    libcloud/trunk/test/dns/fixtures/linode/create_resource.json
    libcloud/trunk/test/dns/fixtures/linode/delete_domain.json
    libcloud/trunk/test/dns/fixtures/linode/delete_domain_does_not_exist.json
    libcloud/trunk/test/dns/fixtures/linode/delete_resource.json
    libcloud/trunk/test/dns/fixtures/linode/delete_resource_does_not_exist.json
    libcloud/trunk/test/dns/fixtures/linode/resource_list_does_not_exist.json
    libcloud/trunk/test/dns/fixtures/linode/update_resource.json
Modified:
    libcloud/trunk/test/dns/test_linode.py

Added: libcloud/trunk/test/dns/fixtures/linode/create_resource.json
URL: http://svn.apache.org/viewvc/libcloud/trunk/test/dns/fixtures/linode/create_resource.json?rev=1175064&view=auto
==============================================================================
--- libcloud/trunk/test/dns/fixtures/linode/create_resource.json (added)
+++ libcloud/trunk/test/dns/fixtures/linode/create_resource.json Fri Sep 23 22:53:37 2011
@@ -0,0 +1,7 @@
+{
+   "ERRORARRAY":[],
+   "ACTION":"domain.resource.create",
+   "DATA":{
+      "ResourceID":28537
+   }
+}

Added: libcloud/trunk/test/dns/fixtures/linode/delete_domain.json
URL: http://svn.apache.org/viewvc/libcloud/trunk/test/dns/fixtures/linode/delete_domain.json?rev=1175064&view=auto
==============================================================================
--- libcloud/trunk/test/dns/fixtures/linode/delete_domain.json (added)
+++ libcloud/trunk/test/dns/fixtures/linode/delete_domain.json Fri Sep 23 22:53:37 2011
@@ -0,0 +1,7 @@
+{
+   "ERRORARRAY":[],
+   "ACTION":"domain.delete",
+   "DATA":{
+      "DomainID":5123
+   }
+}

Added: libcloud/trunk/test/dns/fixtures/linode/delete_domain_does_not_exist.json
URL: http://svn.apache.org/viewvc/libcloud/trunk/test/dns/fixtures/linode/delete_domain_does_not_exist.json?rev=1175064&view=auto
==============================================================================
--- libcloud/trunk/test/dns/fixtures/linode/delete_domain_does_not_exist.json (added)
+++ libcloud/trunk/test/dns/fixtures/linode/delete_domain_does_not_exist.json Fri Sep 23 22:53:37 2011
@@ -0,0 +1 @@
+{"ERRORARRAY":[{"ERRORCODE":5,"ERRORMESSAGE":"Object not found"}],"DATA":{},"ACTION":"domain.delete"}

Added: libcloud/trunk/test/dns/fixtures/linode/delete_resource.json
URL: http://svn.apache.org/viewvc/libcloud/trunk/test/dns/fixtures/linode/delete_resource.json?rev=1175064&view=auto
==============================================================================
--- libcloud/trunk/test/dns/fixtures/linode/delete_resource.json (added)
+++ libcloud/trunk/test/dns/fixtures/linode/delete_resource.json Fri Sep 23 22:53:37 2011
@@ -0,0 +1,7 @@
+{
+   "ERRORARRAY":[],
+   "ACTION":"domain.delete",
+   "DATA":{
+      "ResourceID":5123
+   }
+}

Added: libcloud/trunk/test/dns/fixtures/linode/delete_resource_does_not_exist.json
URL: http://svn.apache.org/viewvc/libcloud/trunk/test/dns/fixtures/linode/delete_resource_does_not_exist.json?rev=1175064&view=auto
==============================================================================
--- libcloud/trunk/test/dns/fixtures/linode/delete_resource_does_not_exist.json (added)
+++ libcloud/trunk/test/dns/fixtures/linode/delete_resource_does_not_exist.json Fri Sep 23 22:53:37 2011
@@ -0,0 +1 @@
+{"ERRORARRAY":[{"ERRORCODE":5,"ERRORMESSAGE":"Object not found"}],"DATA":{},"ACTION":"domain.resource.delete"}

Added: libcloud/trunk/test/dns/fixtures/linode/resource_list_does_not_exist.json
URL: http://svn.apache.org/viewvc/libcloud/trunk/test/dns/fixtures/linode/resource_list_does_not_exist.json?rev=1175064&view=auto
==============================================================================
--- libcloud/trunk/test/dns/fixtures/linode/resource_list_does_not_exist.json (added)
+++ libcloud/trunk/test/dns/fixtures/linode/resource_list_does_not_exist.json Fri Sep 23 22:53:37 2011
@@ -0,0 +1 @@
+{"ERRORARRAY":[{"ERRORCODE":5,"ERRORMESSAGE":"Object not found"}],"DATA":{},"ACTION":"domain.resource.list"}

Added: libcloud/trunk/test/dns/fixtures/linode/update_resource.json
URL: http://svn.apache.org/viewvc/libcloud/trunk/test/dns/fixtures/linode/update_resource.json?rev=1175064&view=auto
==============================================================================
--- libcloud/trunk/test/dns/fixtures/linode/update_resource.json (added)
+++ libcloud/trunk/test/dns/fixtures/linode/update_resource.json Fri Sep 23 22:53:37 2011
@@ -0,0 +1,7 @@
+{
+   "ERRORARRAY":[],
+   "ACTION":"domain.resource.update",
+   "DATA":{
+      "ResourceID":28537
+   }
+}

Modified: libcloud/trunk/test/dns/test_linode.py
URL: http://svn.apache.org/viewvc/libcloud/trunk/test/dns/test_linode.py?rev=1175064&r1=1175063&r2=1175064&view=diff
==============================================================================
--- libcloud/trunk/test/dns/test_linode.py (original)
+++ libcloud/trunk/test/dns/test_linode.py Fri Sep 23 22:53:37 2011
@@ -18,13 +18,13 @@ import unittest
 
 from libcloud.common.linode import LinodeException
 from libcloud.dns.types import RecordType, ZoneDoesNotExistError
+from libcloud.dns.types import RecordDoesNotExistError
 from libcloud.dns.drivers.linode import LinodeDNSDriver
 
-from test import MockHttp # pylint: disable-msg=E0611
-from test.file_fixtures import DNSFileFixtures # pylint: disable-msg=E0611
+from test import MockHttp
+from test.file_fixtures import DNSFileFixtures
 from test.secrets import DNS_PARAMS_LINODE
 
-DOES_NOT_EXIST_ERROR = '{"ERRORARRAY":[{"ERRORCODE":5,"ERRORMESSAGE":"Object not found"}],"DATA":{},"ACTION":"domain.resource.list"}'
 
 class LinodeTests(unittest.TestCase):
     def setUp(self):
@@ -60,7 +60,8 @@ class LinodeTests(unittest.TestCase):
         self.assertEqual(record.name, 'www')
         self.assertEqual(record.type, RecordType.A)
         self.assertEqual(record.data, '75.127.96.245')
-        self.assertHasKeys(record.extra, ['protocol', 'ttl_sec', 'port', 'weight'])
+        self.assertHasKeys(record.extra, ['protocol', 'ttl_sec', 'port',
+                                          'weight'])
 
     def test_list_records_zone_does_not_exist(self):
         zone = self.driver.list_zones()[0]
@@ -100,7 +101,8 @@ class LinodeTests(unittest.TestCase):
         self.assertEqual(record.name, 'www')
         self.assertEqual(record.type, RecordType.A)
         self.assertEqual(record.data, '75.127.96.245')
-        self.assertHasKeys(record.extra, ['protocol', 'ttl_sec', 'port', 'weight'])
+        self.assertHasKeys(record.extra, ['protocol', 'ttl_sec', 'port',
+                                          'weight'])
 
     def test_get_record_zone_does_not_exist(self):
         LinodeMockHttp.type = 'GET_RECORD_ZONE_DOES_NOT_EXIST'
@@ -140,22 +142,63 @@ class LinodeTests(unittest.TestCase):
             self.fail('Exception was not thrown')
 
     def test_create_record_success(self):
-        pass
+        zone = self.driver.list_zones()[0]
+        record = self.driver.create_record(name='www', zone=zone,
+                                           type=RecordType.A, data='127.0.0.1')
+
+        self.assertEqual(record.id, '28537')
+        self.assertEqual(record.name, 'www')
+        self.assertEqual(record.zone, zone)
+        self.assertEqual(record.type, RecordType.A)
+        self.assertEqual(record.data, '127.0.0.1')
 
     def test_update_record_success(self):
-        pass
+        zone = self.driver.list_zones()[0]
+        record = self.driver.list_records(zone=zone)[0]
+        record2 = self.driver.update_record(record=record, name='www',
+                                            type=RecordType.AAAA, data='::1')
+
+        self.assertEqual(record2.id, '28537')
+        self.assertEqual(record2.name, 'www')
+        self.assertEqual(record2.zone, record.zone)
+        self.assertEqual(record2.type, RecordType.AAAA)
+        self.assertEqual(record2.data, '::1')
+
+    def test_delete_zone_success(self):
+        zone = self.driver.list_zones()[0]
+        status = self.driver.delete_zone(zone=zone)
+        self.assertTrue(status)
+
+    def test_delete_zone_does_not_exist(self):
+        zone = self.driver.list_zones()[0]
+
+        LinodeMockHttp.type = 'ZONE_DOES_NOT_EXIST'
+
+        try:
+            self.driver.delete_zone(zone=zone)
+        except ZoneDoesNotExistError, e:
+            self.assertEqual(e.zone_id, zone.id)
+        else:
+            self.fail('Exception was not thrown')
 
     def test_delete_record_success(self):
-        pass
+        zone = self.driver.list_zones()[0]
+        record = self.driver.list_records(zone=zone)[0]
+        status = self.driver.delete_record(record=record)
+        self.assertTrue(status)
 
     def test_delete_record_does_not_exist(self):
-        pass
+        zone = self.driver.list_zones()[0]
+        record = self.driver.list_records(zone=zone)[0]
 
-    def test_delete_zone_success(self):
-        pass
+        LinodeMockHttp.type = 'RECORD_DOES_NOT_EXIST'
 
-    def test_delete_zone_does_not_exist(self):
-        pass
+        try:
+            self.driver.delete_record(record=record)
+        except RecordDoesNotExistError, e:
+            self.assertEqual(e.record_id, record.id)
+        else:
+            self.fail('Exception was not thrown')
 
 
 class LinodeMockHttp(MockHttp):
@@ -169,15 +212,17 @@ class LinodeMockHttp(MockHttp):
         body = self.fixtures.load('resource_list.json')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def _ZONE_DOES_NOT_EXIST_domain_resource_list(self, method, url, body, headers):
-        body = DOES_NOT_EXIST_ERROR
+    def _ZONE_DOES_NOT_EXIST_domain_resource_list(self, method, url, body,
+                                                  headers):
+        body = self.fixtures.load('resource_list_does_not_exist.json')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
     def _GET_ZONE_domain_list(self, method, url, body, headers):
         body = self.fixtures.load('get_zone.json')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def _GET_ZONE_DOES_NOT_EXIST_domain_list(self, method, url, body, headers):
+    def _GET_ZONE_DOES_NOT_EXIST_domain_list(self, method, url, body,
+                                             headers):
         body = self.fixtures.load('get_zone_does_not_exist.json')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
@@ -189,11 +234,13 @@ class LinodeMockHttp(MockHttp):
         body = self.fixtures.load('get_record.json')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def _GET_RECORD_ZONE_DOES_NOT_EXIST_domain_list(self, method, url, body, headers):
+    def _GET_RECORD_ZONE_DOES_NOT_EXIST_domain_list(self, method, url, body,
+                                                    headers):
         body = self.fixtures.load('get_zone_does_not_exist.json')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def _GET_RECORD_RECORD_DOES_NOT_EXIST_domain_list(self, method, url, body, headers):
+    def _GET_RECORD_RECORD_DOES_NOT_EXIST_domain_list(self, method, url, body,
+                                                      headers):
         body = self.fixtures.load('get_record_does_not_exist.json')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
@@ -205,6 +252,31 @@ class LinodeMockHttp(MockHttp):
         body = self.fixtures.load('create_domain_validation_error.json')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
+    def _domain_resource_create(self, method, url, body, headers):
+        body = self.fixtures.load('create_resource.json')
+        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
+
+    def _domain_resource_update(self, method, url, body, headers):
+        body = self.fixtures.load('update_resource.json')
+        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
+
+    def _domain_delete(self, method, url, body, headers):
+        body = self.fixtures.load('delete_domain.json')
+        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
+
+    def _ZONE_DOES_NOT_EXIST_domain_delete(self, method, url, body, headers):
+        body = self.fixtures.load('delete_domain_does_not_exist.json')
+        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
+
+    def _domain_resource_delete(self, method, url, body, headers):
+        body = self.fixtures.load('delete_resource.json')
+        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
+
+    def _RECORD_DOES_NOT_EXIST_domain_resource_delete(self, method, url, body,
+                                                      headers):
+        body = self.fixtures.load('delete_resource_does_not_exist.json')
+        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
+
 
 if __name__ == '__main__':
     sys.exit(unittest.main())