Merge "Fix version replacement when path"
diff --git a/tempest/lib/auth.py b/tempest/lib/auth.py
index 5fc78b9..a6833be 100644
--- a/tempest/lib/auth.py
+++ b/tempest/lib/auth.py
@@ -34,13 +34,15 @@
 def replace_version(url, new_version):
     parts = urlparse.urlparse(url)
     version_path = '/%s' % new_version
-    path = re.sub(r'(^|/)+v\d+(?:\.\d+)?',
-                  version_path,
-                  parts.path,
-                  count=1)
+    path, subs = re.subn(r'(^|/)+v\d+(?:\.\d+)?',
+                         version_path,
+                         parts.path,
+                         count=1)
+    if not subs:
+        path = '%s%s' % (parts.path.rstrip('/'), version_path)
     url = urlparse.urlunparse((parts.scheme,
                                parts.netloc,
-                               path or version_path,
+                               path,
                                parts.params,
                                parts.query,
                                parts.fragment))
diff --git a/tempest/tests/lib/test_auth.py b/tempest/tests/lib/test_auth.py
index df57147..5502c01 100644
--- a/tempest/tests/lib/test_auth.py
+++ b/tempest/tests/lib/test_auth.py
@@ -597,21 +597,18 @@
             auth.replace_version('http://localhost:35357', 'v2.0'))
 
     def test_no_version_base_solidus(self):
-        # TODO(blk-u): This doesn't look like it works as expected.
         self.assertEqual(
-            'http://localhost:35357/',
+            'http://localhost:35357/v2.0',
             auth.replace_version('http://localhost:35357/', 'v2.0'))
 
     def test_no_version_path(self):
-        # TODO(blk-u): This doesn't look like it works as expected.
         self.assertEqual(
-            'http://localhost/identity',
+            'http://localhost/identity/v2.0',
             auth.replace_version('http://localhost/identity', 'v2.0'))
 
     def test_no_version_path_solidus(self):
-        # TODO(blk-u): This doesn't look like it works as expected.
         self.assertEqual(
-            'http://localhost/identity/',
+            'http://localhost/identity/v2.0',
             auth.replace_version('http://localhost/identity/', 'v2.0'))
 
     def test_path_version(self):