From 25d20e6650f4fc84e9ea384cf50619746df2984b Mon Sep 17 00:00:00 2001 From: Arkady Shtempler Date: Sun, 21 Aug 2022 14:19:11 +0300 Subject: [PATCH] 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 --- .../tests/scenario/v2/test_blacklists.py | 44 +++++++++++++------ 1 file changed, 30 insertions(+), 14 deletions(-) diff --git a/designate_tempest_plugin/tests/scenario/v2/test_blacklists.py b/designate_tempest_plugin/tests/scenario/v2/test_blacklists.py index a7455dec..fc9e704f 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 @@ class BlacklistE2E(BaseBlacklistsTest): @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'])