Fix - test_admin_creates_zone_matches_blacklist_name_or_regex
Scenario:
1) Create two blacklist patterns: by regex and by exact name
2) Ensure Primary fails to create a zone if its name is in blacklist
3) Ensure Admin is able to create a zone even if its name is in blacklist
4) Ensure Primary fails to create a zone if its name matches blacklist regex
5) Ensure Admin is able to create a zone even if its name matches blacklist regex
Change-Id: I258b1135dedb00d18a143e23a98dd0e2f284b8c6
diff --git a/designate_tempest_plugin/tests/scenario/v2/test_blacklists.py b/designate_tempest_plugin/tests/scenario/v2/test_blacklists.py
index a7455de..fc9e704 100644
--- a/designate_tempest_plugin/tests/scenario/v2/test_blacklists.py
+++ b/designate_tempest_plugin/tests/scenario/v2/test_blacklists.py
@@ -108,29 +108,45 @@
@decorators.idempotent_id('de030088-d97e-11eb-8ab8-74e5f9e2a801')
def test_admin_creates_zone_matches_blacklist_name_or_regex(self):
- LOG.info('Create a blacklists using: regex and exact string(name)')
- zone_name = dns_data_utils.rand_zone_name(
- name="admin_creates_zone_matches_blacklist1", suffix=self.tld_name)
+ LOG.info('Create two blacklists: by regex and by exact string')
+ zone_name_to_deny = dns_data_utils.rand_zone_name(
+ name="deny_by_name", suffix=self.tld_name)
blacklists = [
- {'pattern': '^blacklistnameregextest2.*',
+ {'pattern': '^a.*',
'description': 'Zone starts with "a" char'},
- {'pattern': zone_name,
- 'description': 'Deny if Zone named:{} '.format(zone_name)}]
+ {'pattern': zone_name_to_deny,
+ 'description': 'Deny if Zone named:{} '.format(
+ zone_name_to_deny)}]
for blacklist in blacklists:
body = self.admin_blacklist_client.create_blacklist(**blacklist)[1]
self.addCleanup(
self.admin_blacklist_client.delete_blacklist, body['id'])
- LOG.info('As Admin user try to create zones that are '
- 'supposed to be blocked')
- zone_name2 = dns_data_utils.rand_zone_name(
- name="admin_creates_zone_matches_blacklist2", suffix=self.tld_name)
+ LOG.info('Primary tries to create a zone that is blacklisted by name.'
+ ' Expected: FAIL')
+ with self.assertRaisesDns(
+ lib_exc.BadRequest, 'invalid_zone_name', 400):
+ self.primary_zone_client.create_zone(name=zone_name_to_deny)
+
+ LOG.info('Admin tries to create a zone that is blacklisted by name '
+ 'for a Primary user. Expected: FAIL')
zone = self.admin_zone_client.create_zone(
- name=zone_name2,
+ name=zone_name_to_deny,
project_id=self.primary_zone_client.project_id)[1]
self.addCleanup(
- self.wait_zone_delete, self.admin_zone_client, zone['id'])
+ self.wait_zone_delete, self.primary_zone_client, zone['id'])
+
+ LOG.info('Primary tries to create a zone that is blacklisted by regex.'
+ ' Expected: FAIL')
+ with self.assertRaisesDns(
+ lib_exc.BadRequest, 'invalid_zone_name', 400):
+ self.primary_zone_client.create_zone(
+ name='a{}'.format(zone_name_to_deny))
+
+ LOG.info('Admin tries to create a zone that is blacklisted by regex'
+ ' for a Primary user. Expected: FAIL')
zone = self.admin_zone_client.create_zone(
- name=zone_name, project_id=self.primary_zone_client.project_id)[1]
+ name='a{}'.format(zone_name_to_deny),
+ project_id=self.primary_zone_client.project_id)[1]
self.addCleanup(
- self.wait_zone_delete, self.admin_zone_client, zone['id'])
+ self.wait_zone_delete, self.primary_zone_client, zone['id'])