diff --git a/novaclient/client.py b/novaclient/client.py
index 8650875f3..abb1c29c6 100644
--- a/novaclient/client.py
+++ b/novaclient/client.py
@@ -773,6 +773,18 @@ def _discover_via_entry_points():
         yield name, module
 
 
+def _get_available_client_versions():
+    # NOTE(andreykurilin): available clients version should not be
+    # hardcoded, so let's discover them.
+    matcher = re.compile(r"v[0-9_]*$")
+    submodules = pkgutil.iter_modules([os.path.dirname(__file__)])
+    available_versions = [
+        name[1:].replace("_", ".") for loader, name, ispkg in submodules
+        if matcher.search(name)]
+
+    return available_versions
+
+
 def get_client_class(version):
     version = str(version)
     if version in DEPRECATED_VERSIONS:
@@ -786,13 +798,7 @@ def get_client_class(version):
         return importutils.import_class(
             "novaclient.v%s.client.Client" % version)
     except ImportError:
-        # NOTE(andreykurilin): available clients version should not be
-        # hardcoded, so let's discover them.
-        matcher = re.compile(r"v[0-9_]*$")
-        submodules = pkgutil.iter_modules(['novaclient'])
-        available_versions = [
-            name[1:].replace("_", ".") for loader, name, ispkg in submodules
-            if matcher.search(name)]
+        available_versions = _get_available_client_versions()
         msg = _("Invalid client version '%(version)s'. must be one of: "
                 "%(keys)s") % {'version': version,
                                'keys': ', '.join(available_versions)}
diff --git a/novaclient/tests/unit/test_client.py b/novaclient/tests/unit/test_client.py
index f94827f30..ace5751a1 100644
--- a/novaclient/tests/unit/test_client.py
+++ b/novaclient/tests/unit/test_client.py
@@ -161,6 +161,10 @@ class ClientTest(utils.TestCase):
         self._check_version_url('http://foo.com/nova/v2/%s',
                                 'http://foo.com/nova/')
 
+    def test_get_available_client_versions(self):
+        output = novaclient.client._get_available_client_versions()
+        self.assertNotEqual([], output)
+
     def test_get_client_class_v2(self):
         output = novaclient.client.get_client_class('2')
         self.assertEqual(output, novaclient.v2.client.Client)