[openstack-dev] Execute Tempest test with admin privileges

Giulio Fidente gfidente at redhat.com
Mon Jul 15 16:49:51 UTC 2013


On 07/15/2013 05:59 PM, Joe Hakim Rahme wrote:
> Hello,
>
> I am trying to write a test in Tempest that would cover the behavior of
> the Swift Account Quotas middleware. The use case I'm trying to cover
> is that the test would create an account, put a quota on it, and try to
> upload a file larger and a file smaller than the quota.
>
> Here's what I have in my class:
>
> class AccountQuotaTest(base.BaseObjectTest):
>     @classmethod
>     def setUpClass(cls):
>         super(AccountQuotaTest, cls).setUpClass()
>         cls.container_name = rand_name(name="TestContainer")
>         cls.container_client.create_container(cls.container_name)
>
>         # Add the account quota metadata
>         size = "10"
>         metadata = {"Quota-Bytes": size}
>         cls.account_client.create_account_metadata(metadata=metadata)
>
> However when I execute the tests, I get a Unauthorized exception. I
> guess it makes sense, since only the admin (or any account with
> ResellerAdmin role) can set this metadata.

In the base class you'll see the container_client , account_client and 
other clients are defined out of cls.os

https://github.com/openstack/tempest/blob/master/tempest/api/object_storage/base.py#L28

redefine those in your test class from cls.os_admin so they will "run" 
using the admin credentials

Ideally you could also provide some BaseAdminObjectTest class in base.py 
to use, as it happens for the volume tests:

https://github.com/openstack/tempest/blob/master/tempest/api/volume/base.py#L192
-- 
Giulio Fidente
GPG KEY: 08D733BA | IRC: giulivo



More information about the OpenStack-dev mailing list