Test that tenant list function can use auth_url

Listing tenants can be done on the auth URL because it is often needed
to be performed with an unscoped token. The behaviour is not tested
though so add a test to cover it.

Change-Id: Ic14d54f0f1d8cca2c3a5a6a6da7465c703773aa0
This commit is contained in:
Jamie Lennox
2014-07-04 11:58:05 +10:00
parent 976b126c1e
commit 5011d51f31

View File

@@ -15,7 +15,9 @@ import uuid
import httpretty
from keystoneclient import exceptions
from keystoneclient import fixture
from keystoneclient.tests.v2_0 import utils
from keystoneclient.v2_0 import client
from keystoneclient.v2_0 import tenants
from keystoneclient.v2_0 import users
@@ -345,3 +347,38 @@ class TenantTests(utils.TestCase):
self.assertEqual(set([user_id1, user_id2]),
set([u.id for u in user_objs]))
@httpretty.activate
def test_list_tenants_use_admin_url(self):
self.stub_url(httpretty.GET, ['tenants'], json=self.TEST_TENANTS)
self.assertEqual(self.TEST_URL, self.client.management_url)
tenant_list = self.client.tenants.list()
[self.assertIsInstance(t, tenants.Tenant) for t in tenant_list]
self.assertEqual(len(self.TEST_TENANTS['tenants']['values']),
len(tenant_list))
@httpretty.activate
def test_list_tenants_fallback_to_auth_url(self):
new_auth_url = 'http://keystone.test:5000/v2.0'
token = fixture.V2Token(token_id=self.TEST_TOKEN,
user_name=self.TEST_USER,
user_id=self.TEST_USER_ID)
self.stub_auth(base_url=new_auth_url, json=token)
self.stub_url(httpretty.GET, ['tenants'], base_url=new_auth_url,
json=self.TEST_TENANTS)
c = client.Client(username=self.TEST_USER,
auth_url=new_auth_url,
password=uuid.uuid4().hex)
self.assertIsNone(c.management_url)
tenant_list = c.tenants.list()
[self.assertIsInstance(t, tenants.Tenant) for t in tenant_list]
self.assertEqual(len(self.TEST_TENANTS['tenants']['values']),
len(tenant_list))