Merge "Run functional tests using keystone auth options"

This commit is contained in:
Jenkins 2015-07-02 00:14:41 +00:00 committed by Gerrit Code Review
commit 795476e013
2 changed files with 73 additions and 4 deletions

View File

@ -44,6 +44,7 @@ class TestFunctional(testtools.TestCase):
'/etc/swift/test.conf')
config = configparser.SafeConfigParser({'auth_version': '1'})
config.read(config_file)
self.config = config
if config.has_section('func_test'):
auth_host = config.get('func_test', 'auth_host')
auth_port = config.getint('func_test', 'auth_port')
@ -70,15 +71,20 @@ class TestFunctional(testtools.TestCase):
else:
self.skip_tests = True
def _get_connection(self):
"""
Subclasses may override to use different connection setup
"""
return swiftclient.Connection(
self.auth_url, self.account_username, self.password,
auth_version=self.auth_version)
def setUp(self):
super(TestFunctional, self).setUp()
if self.skip_tests:
self.skipTest('SKIPPING FUNCTIONAL TESTS DUE TO NO CONFIG')
self.conn = swiftclient.Connection(
self.auth_url, self.account_username, self.password,
auth_version=self.auth_version)
self.conn = self._get_connection()
self.conn.put_container(self.containername)
self.conn.put_container(self.containername_2)
self.conn.put_object(
@ -301,3 +307,58 @@ class TestFunctional(testtools.TestCase):
def test_get_capabilities(self):
resp = self.conn.get_capabilities()
self.assertTrue(resp.get('swift'))
class TestUsingKeystone(TestFunctional):
"""
Repeat tests using os_options parameter to Connection.
"""
def _get_connection(self):
account = username = password = None
if self.auth_version not in ('2', '3'):
self.skipTest('SKIPPING KEYSTONE-SPECIFIC FUNCTIONAL TESTS')
try:
account = self.config.get('func_test', 'account')
username = self.config.get('func_test', 'username')
password = self.config.get('func_test', 'password')
except Exception:
self.skipTest('SKIPPING KEYSTONE-SPECIFIC FUNCTIONAL TESTS' +
' - NO CONFIG')
os_options = {'tenant_name': account}
return swiftclient.Connection(
self.auth_url, username, password, auth_version=self.auth_version,
os_options=os_options)
def setUp(self):
super(TestUsingKeystone, self).setUp()
class TestUsingKeystoneV3(TestFunctional):
"""
Repeat tests using a keystone user with domain specified.
"""
def _get_connection(self):
account = username = password = project_domain = user_domain = None
if self.auth_version != '3':
self.skipTest('SKIPPING KEYSTONE-V3-SPECIFIC FUNCTIONAL TESTS')
try:
account = self.config.get('func_test', 'account4')
username = self.config.get('func_test', 'username4')
user_domain = self.config.get('func_test', 'domain4')
project_domain = self.config.get('func_test', 'domain4')
password = self.config.get('func_test', 'password4')
except Exception:
self.skipTest('SKIPPING KEYSTONE-V3-SPECIFIC FUNCTIONAL TESTS' +
' - NO CONFIG')
os_options = {'project_name': account,
'project_domain_name': project_domain,
'user_domain_name': user_domain}
return swiftclient.Connection(self.auth_url, username, password,
auth_version=self.auth_version,
os_options=os_options)
def setUp(self):
super(TestUsingKeystoneV3, self).setUp()

View File

@ -16,3 +16,11 @@ auth_prefix = /auth/
account = test
username = tester
password = testing
# Another user is required for keystone v3 specific tests.
# Account must be in a non-default domain.
# (Suffix '4' is used to be consistent with swift functional test config).
#account4 = test4
#username4 = tester4
#password4 = testing4
#domain4 = test-domain