diff --git a/zunclient/client.py b/zunclient/client.py index 2717b59a..44a8983b 100644 --- a/zunclient/client.py +++ b/zunclient/client.py @@ -89,6 +89,13 @@ def Client(version='1', username=None, auth_url=None, **kwargs): osprofiler_profiler.init(profile) api_version, client_class = _get_client_class_and_version(version) + if api_version.is_latest(): + c = client_class(api_version=api_versions.APIVersion("1.1"), + auth_url=auth_url, + username=username, + **kwargs) + api_version = api_versions.discover_version(c, api_version) + return client_class(api_version=api_version, auth_url=auth_url, username=username, diff --git a/zunclient/tests/unit/test_client.py b/zunclient/tests/unit/test_client.py index bfff2914..ac46e548 100644 --- a/zunclient/tests/unit/test_client.py +++ b/zunclient/tests/unit/test_client.py @@ -22,24 +22,28 @@ from zunclient import exceptions class ClientTest(testtools.TestCase): + @mock.patch('zunclient.api_versions.discover_version', + return_value=api_versions.APIVersion('1.1')) @mock.patch('zunclient.v1.client.Client') - def test_no_version_argument(self, mock_zun_client_v1): + def test_no_version_argument(self, mock_zun_client_v1, + mock_discover_version): client.Client(auth_url='http://example/identity', username='admin') - api_version = api_versions.get_api_version('1') mock_zun_client_v1.assert_called_with( - api_version=api_version, + api_version=api_versions.APIVersion('1.1'), auth_url='http://example/identity', username='admin') + @mock.patch('zunclient.api_versions.discover_version', + return_value=api_versions.APIVersion('1.1')) @mock.patch('zunclient.v1.client.Client') - def test_valid_version_argument(self, mock_zun_client_v1): + def test_valid_version_argument(self, mock_zun_client_v1, + mock_discover_version): client.Client(version='1', auth_url='http://example/identity', username='admin') - api_version = api_versions.get_api_version('1') mock_zun_client_v1.assert_called_with( - api_version=api_version, + api_version=api_versions.APIVersion('1.1'), auth_url='http://example/identity', username='admin')