Add negative tests for admin-only API
For admin-only API add negative functional tests that try to execute them as a non-admin user and verify that permission is denied. Change-Id: I43d8f2f4f9a1574ea11f6b9ba8aac03d9ac3ace2
This commit is contained in:
@@ -33,20 +33,6 @@ class ShareTypesAdminNegativeTest(base.BaseSharesAdminTest):
|
||||
super(ShareTypesAdminNegativeTest, cls).resource_setup()
|
||||
cls.member_shares_client = clients.Manager().shares_client
|
||||
|
||||
@test.attr(type=["gate", "smoke", ])
|
||||
def test_try_create_share_type_with_user(self):
|
||||
self.assertRaises(lib_exc.Forbidden,
|
||||
self.create_share_type,
|
||||
data_utils.rand_name("used_user_creds"),
|
||||
client=self.member_shares_client)
|
||||
|
||||
@test.attr(type=["gate", "smoke", ])
|
||||
def test_try_delete_share_type_with_user(self):
|
||||
st = self._create_share_type()
|
||||
self.assertRaises(lib_exc.Forbidden,
|
||||
self.member_shares_client.delete_share_type,
|
||||
st["share_type"]["id"])
|
||||
|
||||
@test.attr(type=["gate", "smoke", ])
|
||||
def test_create_share_with_nonexistent_share_type(self):
|
||||
self.assertRaises(lib_exc.NotFound,
|
||||
|
||||
@@ -26,3 +26,16 @@ class SharesQuotasNegativeTest(base.BaseSharesTest):
|
||||
def test_get_quotas_with_empty_tenant_id(self):
|
||||
self.assertRaises(lib_exc.NotFound,
|
||||
self.shares_client.show_quotas, "")
|
||||
|
||||
@test.attr(type=["gate", "smoke", "negative", ])
|
||||
def test_try_reset_quotas_with_user(self):
|
||||
self.assertRaises(lib_exc.Forbidden,
|
||||
self.shares_client.reset_quotas,
|
||||
self.shares_client.tenant_id)
|
||||
|
||||
@test.attr(type=["gate", "smoke", "negative", ])
|
||||
def test_try_update_quotas_with_user(self):
|
||||
self.assertRaises(lib_exc.Forbidden,
|
||||
self.shares_client.update_quotas,
|
||||
self.shares_client.tenant_id,
|
||||
shares=9)
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
# Copyright 2015 Mirantis Inc.
|
||||
# All Rights Reserved.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||
# not use this file except in compliance with the License. You may obtain
|
||||
# a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
# 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 tempest_lib import exceptions as lib_exc # noqa
|
||||
|
||||
from tempest.api.share import base
|
||||
from tempest import test
|
||||
|
||||
|
||||
class SchedulerStatsNegativeTest(base.BaseSharesTest):
|
||||
|
||||
@test.attr(type=["gate", "smoke", "negative", ])
|
||||
def test_try_list_pools_with_user(self):
|
||||
self.assertRaises(lib_exc.Forbidden,
|
||||
self.shares_client.list_pools)
|
||||
|
||||
@test.attr(type=["gate", "smoke", "negative", ])
|
||||
def test_try_list_pools_detailed_with_user(self):
|
||||
self.assertRaises(lib_exc.Forbidden,
|
||||
self.shares_client.list_pools,
|
||||
detail=True)
|
||||
@@ -0,0 +1,64 @@
|
||||
# Copyright 2014 OpenStack Foundation
|
||||
# All Rights Reserved.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||
# not use this file except in compliance with the License. You may obtain
|
||||
# a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
# 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 tempest_lib.common.utils import data_utils # noqa
|
||||
from tempest_lib import exceptions as lib_exc # noqa
|
||||
|
||||
from tempest.api.share import base
|
||||
from tempest import clients_share as clients
|
||||
from tempest import test
|
||||
|
||||
|
||||
class ShareTypesNegativeTest(base.BaseSharesTest):
|
||||
|
||||
@classmethod
|
||||
def _create_share_type(cls):
|
||||
name = data_utils.rand_name("unique_st_name")
|
||||
extra_specs = cls.add_required_extra_specs_to_dict()
|
||||
return cls.create_share_type(
|
||||
name, extra_specs=extra_specs,
|
||||
client=clients.AdminManager().shares_client)
|
||||
|
||||
@classmethod
|
||||
def resource_setup(cls):
|
||||
super(ShareTypesNegativeTest, cls).resource_setup()
|
||||
cls.st = cls._create_share_type()
|
||||
|
||||
@test.attr(type=["gate", "smoke", "negative"])
|
||||
def test_try_create_share_type_with_user(self):
|
||||
self.assertRaises(lib_exc.Forbidden,
|
||||
self.create_share_type,
|
||||
data_utils.rand_name("used_user_creds"),
|
||||
client=self.shares_client)
|
||||
|
||||
@test.attr(type=["gate", "smoke", "negative"])
|
||||
def test_try_delete_share_type_with_user(self):
|
||||
self.assertRaises(lib_exc.Forbidden,
|
||||
self.shares_client.delete_share_type,
|
||||
self.st["share_type"]["id"])
|
||||
|
||||
@test.attr(type=["gate", "smoke", "negative"])
|
||||
def test_try_add_access_to_share_type_with_user(self):
|
||||
self.assertRaises(lib_exc.Forbidden,
|
||||
self.shares_client.add_access_to_share_type,
|
||||
self.st['share_type']['id'],
|
||||
self.shares_client.tenant_id)
|
||||
|
||||
@test.attr(type=["gate", "smoke", "negative"])
|
||||
def test_try_remove_access_from_share_type_with_user(self):
|
||||
self.assertRaises(lib_exc.Forbidden,
|
||||
self.shares_client.remove_access_from_share_type,
|
||||
self.st['share_type']['id'],
|
||||
self.shares_client.tenant_id)
|
||||
@@ -228,3 +228,22 @@ class SharesNegativeTest(base.BaseSharesTest):
|
||||
isolated_client.delete_metadata,
|
||||
self.share['id'],
|
||||
'key')
|
||||
|
||||
@test.attr(type=["gate", "smoke", "negative", ])
|
||||
def test_list_by_share_server_by_user(self):
|
||||
self.assertRaises(lib_exc.Forbidden,
|
||||
self.shares_client.list_shares,
|
||||
params={'share_server_id': 12345})
|
||||
|
||||
@test.attr(type=["gate", "smoke", "negative", ])
|
||||
def test_manage_share_by_user(self):
|
||||
self.assertRaises(lib_exc.Forbidden,
|
||||
self.shares_client.manage_share,
|
||||
'fake-host', 'nfs', '/export/path',
|
||||
'fake-type')
|
||||
|
||||
@test.attr(type=["gate", "smoke", "negative", ])
|
||||
def test_unmanage_share_by_user(self):
|
||||
self.assertRaises(lib_exc.Forbidden,
|
||||
self.shares_client.unmanage_share,
|
||||
'fake-id')
|
||||
|
||||
Reference in New Issue
Block a user