cloudstack/tools/testClient/cloudstackTestCase.py
Prasanna Santhanam 47213463ea bug 13234: run tests as a regular user on testClient
status 13234: resolved fixed
reviewed-by: unittest

When multiple tests in a user-decorator suite are run only the first
test runs successfully since the apiKey has been altered to that of a
regular user. Preventing failure of other tests by detecting user
context - user, admin, domain-admin.

@UserName decorator applies to a testSuite class not a testMethod
2012-03-29 19:18:55 +05:30

43 lines
1.2 KiB
Python

from cloudstackAPI import *
try:
import unittest2 as unittest
except ImportError:
import unittest
import cloudstackTestClient
#class UserName(object):
# def __init__(self, account, domain, type=0):
# self.account = account
# self.domain = domain
# self.accounttype = type
#
# def __call__(self, cls):
# class Wrapped(cls):
# cls.UserName = self.account
# cls.DomainName = self.domain
# cls.AcctType = self.accounttype
# return Wrapped
def UserName(Name, DomainName, AcctType):
def wrapper(cls):
orig_init = cls.__init__
def __init__(self, *args, **kws):
cls.UserName = Name
cls.DomainName = DomainName
cls.AcctType = AcctType
orig_init(self, *args, **kws)
cls.__init__ = __init__
return cls
return wrapper
class cloudstackTestCase(unittest.case.TestCase):
clstestclient = None
def __init__(self, args):
unittest.case.TestCase.__init__(self, args)
self.testClient = cloudstackTestClient.cloudstackTestClient()
@classmethod
def getClsTestClient(cls):
return cls.clstestclient