summaryrefslogtreecommitdiff
path: root/designate/tests/test_notification_handler/test_base.py
diff options
context:
space:
mode:
Diffstat (limited to 'designate/tests/test_notification_handler/test_base.py')
-rw-r--r--designate/tests/test_notification_handler/test_base.py88
1 files changed, 86 insertions, 2 deletions
diff --git a/designate/tests/test_notification_handler/test_base.py b/designate/tests/test_notification_handler/test_base.py
index f1a10dab..c35d4304 100644
--- a/designate/tests/test_notification_handler/test_base.py
+++ b/designate/tests/test_notification_handler/test_base.py
@@ -13,6 +13,8 @@
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
+from unittest import expectedFailure
+
from designate.notification_handler import base
from designate.tests import TestCase
@@ -24,6 +26,8 @@ class InheritFormBaseAddressHandler(base.BaseAddressHandler):
we need to create something to inherit from it so we have something
instantiatable.
"""
+ __plugin_name__ = 'nova_fixed'
+
def get_event_types(self):
pass
@@ -35,11 +39,91 @@ class InheritFormBaseAddressHandler(base.BaseAddressHandler):
class BaseAddressHandlerTest(TestCase):
+ def setUp(self):
+ super(BaseAddressHandlerTest, self).setUp()
+
+ self.zone = self.create_zone()
+ self.zone_id = self.zone['id']
+ self.base = InheritFormBaseAddressHandler()
+
def test_get_ip_data_support_v6(self):
addr_dict = {'address': '1762::B03:1:AF18', 'version': 6}
- baseaddresshandler = InheritFormBaseAddressHandler()
- observe = baseaddresshandler._get_ip_data(addr_dict)
+ observe = self.base._get_ip_data(addr_dict)
expect = {'octet1': 'B03', 'octet0': '1762', 'octet3': 'AF18',
'octet2': '1', 'ip_version': 6,
'ip_address': '1762--B03-1-AF18'}
self.assertEqual(observe, expect)
+
+ def test_create_record(self):
+ self.base._create([
+ {'address': '172.16.0.15', 'version': 4}],
+ {'hostname': 'test01'},
+ self.zone_id,
+ resource_id='1fb1feba-2ea4-4925-ba2c-9a3706348a70',
+ resource_type='instance'
+ )
+
+ criterion = {
+ 'zone_id': self.zone_id,
+ 'type': 'A',
+ }
+
+ recordsets = self.central_service.find_recordsets(
+ self.admin_context, criterion)
+
+ self.assertEqual('test01.example.com.', recordsets[0].name)
+ self.assertEqual('A', recordsets[0].type)
+
+ def test_delete_record(self):
+ self.base._create([
+ {'address': '172.16.0.15', 'version': 4}],
+ {'hostname': 'test01'},
+ self.zone_id,
+ resource_id='6d6deb76-e4e7-492e-8f9d-4d906653c511',
+ resource_type='instance'
+ )
+
+ criterion = {
+ 'zone_id': self.zone_id,
+ 'type': 'A',
+ }
+
+ recordsets = self.central_service.find_recordsets(
+ self.admin_context, criterion)
+
+ self.assertEqual('test01.example.com.', recordsets[0].name)
+ self.assertEqual('A', recordsets[0].type)
+
+ self.base._delete(self.zone_id, '6d6deb76-e4e7-492e-8f9d-4d906653c511')
+
+ recordsets = self.central_service.find_recordsets(
+ self.admin_context, criterion)
+ self.assertEqual(0, len(recordsets))
+
+ @expectedFailure
+ def test_delete_record_with_no_zone_id(self):
+ self.base._create([
+ {'address': '172.16.0.15', 'version': 4}],
+ {'hostname': 'test01'},
+ self.zone_id,
+ resource_id='6d6deb76-e4e7-492e-8f9d-4d906653c511',
+ resource_type='instance'
+ )
+
+ criterion = {
+ 'zone_id': self.zone_id,
+ 'type': 'A',
+ }
+
+ recordsets = self.central_service.find_recordsets(
+ self.admin_context, criterion)
+
+ self.assertEqual('test01.example.com.', recordsets[0].name)
+ self.assertEqual('A', recordsets[0].type)
+
+ # NOTE(eandersson): _delete should succeed even without a zone_id.
+ self.base._delete(None, '6d6deb76-e4e7-492e-8f9d-4d906653c511')
+
+ recordsets = self.central_service.find_recordsets(
+ self.admin_context, criterion)
+ self.assertEqual(0, len(recordsets))