class TestUbersmithClient(unittest.TestCase):

    def setUp(self):
        self.client = UbersmithClient(cfg['url'],
                                      cfg['username'],
                                      cfg['api_token'])

    @property
    def client_id(self):
        if not hasattr(self, '_client_id'):
            result = self.client.check_login(cfg['login'], cfg['pass'])
            self._client_id = result.get('client_id')
        return self._client_id

    @property
    def client_map(self):
        if not hasattr(self, '_client_map'):
            self._client_map = self.client.get_client(self.client_id,
                                                      metadata=True)
        return self._client_map

    def test_check_login(self):
        self.assertTrue(self.client_id)

    def test_check_login_fails_with_error(self):
        self.assertRaises(UbersmithError,
                          self.client.check_login,
                          'badusername',
                          '')

    def test_get_client(self):
        self.assertTrue('metadata' in self.client_map)

    def test_update_client(self):
        tenant_id = self.client_map['metadata']['keystone_tenant_id']
        if tenant_id == 'foo':
            new_tenant_id = 'bar'
        else:
            new_tenant_id = 'foo'
        success = self.client.update_client(
            self.client_id,
            meta_keystone_tenant_id=new_tenant_id)
        client_map = self.client.get_client(self.client_id, metadata=True)
        retrieved_tenant_id = client_map['metadata']['keystone_tenant_id']
        self.assertEqual(new_tenant_id, retrieved_tenant_id)
class TestUbersmithClient(unittest.TestCase):
    def setUp(self):
        self.client = UbersmithClient(cfg['url'], cfg['username'],
                                      cfg['api_token'])

    @property
    def client_id(self):
        if not hasattr(self, '_client_id'):
            result = self.client.check_login(cfg['login'], cfg['pass'])
            self._client_id = result.get('client_id')
        return self._client_id

    @property
    def client_map(self):
        if not hasattr(self, '_client_map'):
            self._client_map = self.client.get_client(self.client_id,
                                                      metadata=True)
        return self._client_map

    def test_check_login(self):
        self.assertTrue(self.client_id)

    def test_check_login_fails_with_error(self):
        self.assertRaises(UbersmithError, self.client.check_login,
                          'badusername', '')

    def test_get_client(self):
        self.assertTrue('metadata' in self.client_map)

    def test_update_client(self):
        tenant_id = self.client_map['metadata']['keystone_tenant_id']
        if tenant_id == 'foo':
            new_tenant_id = 'bar'
        else:
            new_tenant_id = 'foo'
        success = self.client.update_client(
            self.client_id, meta_keystone_tenant_id=new_tenant_id)
        client_map = self.client.get_client(self.client_id, metadata=True)
        retrieved_tenant_id = client_map['metadata']['keystone_tenant_id']
        self.assertEqual(new_tenant_id, retrieved_tenant_id)
 def setUp(self):
     self.client = UbersmithClient(cfg['url'], cfg['username'],
                                   cfg['api_token'])
 def setUp(self):
     self.client = UbersmithClient(cfg['url'],
                                   cfg['username'],
                                   cfg['api_token'])