diff --git a/keystoneclient/tests/v2_0/test_tenants.py b/keystoneclient/tests/v2_0/test_tenants.py index 7576041cf..e52e2381c 100644 --- a/keystoneclient/tests/v2_0/test_tenants.py +++ b/keystoneclient/tests/v2_0/test_tenants.py @@ -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))