Merge "New test case for a "list export zone", filter listed results."
diff --git a/designate_tempest_plugin/tests/api/v2/test_zones_exports.py b/designate_tempest_plugin/tests/api/v2/test_zones_exports.py
index 34a2c41..ef9ba6d 100644
--- a/designate_tempest_plugin/tests/api/v2/test_zones_exports.py
+++ b/designate_tempest_plugin/tests/api/v2/test_zones_exports.py
@@ -58,12 +58,6 @@
LOG.info('Ensure we respond with PENDING')
self.assertEqual('PENDING', zone_export['status'])
- @decorators.idempotent_id('76ab8ec4-95fd-11eb-b1cd-74e5f9e2a801')
- def test_create_zone_export_using_invalid_zone_id(self):
- self.assertRaises(
- lib_exc.NotFound, self.client.create_zone_export,
- 'e35bc796-9841-11eb-898b-74e5f9e2a801')
-
@decorators.attr(type='smoke')
@decorators.idempotent_id('2d29a2a9-1941-4b7e-9d8a-ad6c2140ea68')
def test_show_zone_export(self):
@@ -164,6 +158,85 @@
'Failed, expected ID:{} was not found in '
'listed IDs:{}'.format(id, listed_exports_ids))
+ @decorators.idempotent_id('e4a11a14-9aaa-11eb-be59-74e5f9e2a801')
+ @decorators.skip_because(bug='1926058')
+ def test_list_zone_exports_filter_results(self):
+
+ LOG.info('Create a primary zone and its export')
+ primary_zone = self.zone_client.create_zone()[1]
+ self.addCleanup(
+ self.wait_zone_delete, self.zone_client, primary_zone['id'])
+ primary_export = self.client.create_zone_export(primary_zone['id'])[1]
+ self.addCleanup(self.client.delete_zone_export, primary_export['id'])
+
+ LOG.info('Create an alt zone, its export and delete it')
+ alt_zone = self.alt_zone_client.create_zone()[1]
+ self.addCleanup(
+ self.wait_zone_delete, self.alt_zone_client, alt_zone['id'])
+ alt_export = self.alt_client.create_zone_export(alt_zone['id'])[1]
+ self.alt_client.delete_zone_export(alt_export['id'])
+ LOG.info('Ensure the zone export has been successfully deleted')
+ self.assertRaises(lib_exc.NotFound,
+ lambda: self.alt_client.show_zone_export(alt_export['id']))
+
+ LOG.info('Filter out "export zones" in status:ZAHLABUT,'
+ ' expected: empty list')
+ self.assertEqual(
+ [], self.admin_client.list_zone_exports(
+ headers={'x-auth-all-projects': True},
+ params={'status': 'ZAHLABUT'})[1]['exports'],
+ 'Failed, filtered result is expected to be empty.')
+
+ LOG.info('Filter out "export zones" with message:ZABABUN,'
+ ' expected: empty list')
+ self.assertEqual(
+ [], self.admin_client.list_zone_exports(
+ headers={'x-auth-all-projects': True},
+ params={'message': 'ZABABUN'})[1]['exports'],
+ 'Failed, filtered result is expected to be empty.')
+
+ LOG.info('Filter out "export zones" that have been created for '
+ 'a primary zone. Expected: single zone export is listed')
+ self.assertEqual(
+ 1, len(self.admin_client.list_zone_exports(
+ headers={'x-auth-all-projects': True},
+ params={'zone_id': primary_zone['id']})[1]['exports']),
+ 'Failed, filtered result should contain a single zone '
+ '(primary zone export)')
+
+ LOG.info('Filter out "export zones" that have been created for '
+ 'an alt zone expected: empty list (it was deleted)')
+ self.assertEqual(
+ [], self.admin_client.list_zone_exports(
+ headers={'x-auth-all-projects': True},
+ params={'zone_id': primary_zone['id']})[1]['exports'],
+ 'Failed, filtered result should contain a single zone '
+ '(primary zone export)')
+
+
+class ZonesExportTestNegative(BaseZoneExportsTest):
+ credentials = ['primary', 'alt']
+
+ @classmethod
+ def setup_credentials(cls):
+ # Do not create network resources for these test.
+ cls.set_network_resources()
+ super(ZonesExportTestNegative, cls).setup_credentials()
+
+ @classmethod
+ def setup_clients(cls):
+ super(ZonesExportTestNegative, cls).setup_clients()
+
+ cls.zone_client = cls.os_primary.zones_client
+ cls.client = cls.os_primary.zone_exports_client
+ cls.alt_client = cls.os_alt.zone_exports_client
+
+ @decorators.idempotent_id('76ab8ec4-95fd-11eb-b1cd-74e5f9e2a801')
+ def test_create_zone_export_using_invalid_zone_id(self):
+ self.assertRaises(
+ lib_exc.NotFound, self.client.create_zone_export,
+ 'e35bc796-9841-11eb-898b-74e5f9e2a801')
+
@decorators.idempotent_id('943dad4a-9617-11eb-b1cd-74e5f9e2a801')
def test_export_not_your_zone(self):
LOG.info('Create a primary zone.')