Cleaning up.

This commit is contained in:
Chmouel Boudjnah 2013-03-26 14:55:57 +01:00
parent feb96e5ee2
commit 0d5537c863

View File

@ -1,124 +0,0 @@
# -*- encoding: utf-8 -*-
import os
import sys
import uuid
import unittest2
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), "..")))
import sync.accounts as sync_accounts
TENANTS_LIST = {'foo1': {'id': uuid.uuid4().hex},
'foo2': {'id': uuid.uuid4().hex},
'foo3': {'id': uuid.uuid4().hex}}
CONFIGDICT = {'auth':
{'keystone_origin': 'http://keystone-origin.com',
'keystone_origin_admin_credentials': 'foo1:bar:kernel',
'keystone_dest': 'http://storage-dest.com'}}
STORAGE_DEST = 'http://storage-dest.com'
def fake_get_config(section, option):
return CONFIGDICT[section][option]
def fake_get_auth(auth_url, tenant, user, password):
return FakeSWConnection(
auth_url,
'%s:%s' % (tenant, user),
password,
auth_version=2).get_auth()
class FakeSWConnection(object):
def __init__(self, *args, **kwargs):
self.mainargs = args
self.mainkwargs = kwargs
def get_auth(self, *args, **kwargs):
tenant, user = self.mainargs[1].split(':')
tenant_id = TENANTS_LIST[tenant]['id']
return ('%s/v1/AUTH_%s' % (STORAGE_DEST, tenant_id), 'token')
class FakeKSTenant(object):
def __init__(self, tenant_name):
self.tenant_name = tenant_name
@property
def id(self):
return TENANTS_LIST[self.tenant_name]['id']
def __str__(self):
return self.tenant_name
class FakeKSClientTenant(object):
def list(self):
for t in list(TENANTS_LIST):
yield FakeKSTenant(t)
class FakeKSClient(object):
def __init__(self, *args):
self.args = args
self.tenants = FakeKSClientTenant()
def __call__(self):
return self.args
class FakeKS(object):
@staticmethod
def Client(*args, **kwargs):
return FakeKSClient(args, kwargs)
class TestAccount(unittest2.TestCase):
def setUp(self):
sync_accounts.ksclient = FakeKS
sync_accounts.get_config = fake_get_config
sync_accounts.get_auth = fake_get_auth
def test_list_accounts(self):
cnx = FakeKSClient()
tenant_list = [str(x) for x in sync_accounts.list_accounts(cnx)]
self.assertEquals(sorted(TENANTS_LIST), tenant_list)
def test_get_ks_auth_orig(self):
args, kwargs = sync_accounts.get_ks_auth_orig()()
k = CONFIGDICT['auth']['keystone_origin_admin_credentials']
tenant_name, username, password = k.split(':')
self.assertEquals(kwargs['tenant_name'], tenant_name)
self.assertEquals(kwargs['username'], username)
self.assertEquals(kwargs['password'], password)
k = CONFIGDICT['auth']['keystone_origin']
self.assertEquals(k, kwargs['auth_url'])
def test_sync_accounts(self):
ret = []
def sync_an_account(orig_storage_url,
orig_token,
dest_storage_url,
dest_token):
ret.append((orig_storage_url, dest_storage_url))
sync_accounts.sync_an_account = sync_an_account
sync_accounts.sync_accounts()
tenant_list_ids = sorted(TENANTS_LIST[x]['id'] for x in TENANTS_LIST)
ret_orig_storage_id = sorted(
x[0][x[0].find('AUTH_') + 5:] for x in ret)
self.assertEquals(tenant_list_ids, ret_orig_storage_id)
[self.assertTrue(x[1].startswith(STORAGE_DEST)) for x in ret]
def test_sync_an_account(self):
pass
if __name__ == '__main__':
unittest2.main()