diff options
Diffstat (limited to 'designate/tests/test_notification_handler/test_base.py')
-rw-r--r-- | designate/tests/test_notification_handler/test_base.py | 88 |
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)) |