示例#1
0
class TestAccountClient():
    def __init__(self):
        self.client = AccountClient()

    def test_add_account_success(self):
        """ ACCOUNT (CLIENTS): create a new account and get information about account."""
        account = account_name_generator()
        type, email = 'USER', '*****@*****.**'
        ret = self.client.add_account(account, type, email)
        assert_true(ret)

        with assert_raises(Duplicate):
            self.client.add_account(account, type, email)

        with assert_raises(InvalidObject):
            self.client.add_account('BAD_ACCOUNT_NAME', type, email)

        with assert_raises(InvalidObject):
            self.client.add_account('toooooooloooooonaccounnnnnnnntnammmmme',
                                    type, email)

        acc_info = self.client.get_account(account)
        assert_equal(acc_info['account'], account)

    @raises(AccountNotFound)
    def test_get_account_notfound(self):
        """ ACCOUNT (CLIENTS): try to get information about not existing account."""
        account = str(uuid())
        self.client.get_account(account)

    def test_list_accounts(self):
        """ ACCOUNT (CLIENTS): get list of all accounts."""
        dn = config_get('bootstrap', 'x509_identity')
        acc_list = [account_name_generator() for _ in xrange(5)]
        for account in acc_list:
            self.client.add_account(account, 'USER', '*****@*****.**')

        svr_list = [
            a['account']
            for a in self.client.list_accounts(account_type='SERVICE',
                                               identity=dn)
        ]
        assert_true('root' in svr_list)

        svr_list = [
            a['account']
            for a in self.client.list_accounts(account_type='USER')
        ]
        for account in acc_list:
            assert_true(account in svr_list)

    def test_ban_unban_account(self):
        """ ACCOUNT (CLIENTS): create a new account and ban/unban it."""
        account = account_name_generator()
        type, email = 'USER', '*****@*****.**'
        ret = self.client.add_account(account, type, email)
        assert_true(ret)
        self.client.set_account_status(account=account, status='SUSPENDED')
        status = self.client.get_account(account=account)['status']
        assert_equal(status, 'SUSPENDED')
        self.client.set_account_status(account=account, status='ACTIVE')
        status = self.client.get_account(account=account)['status']
        assert_equal(status, 'ACTIVE')