From 3b7218422467e12322b6b628f3bd71d69eb9337a Mon Sep 17 00:00:00 2001
From: Michael Hanselmann <hansmi@google.com>
Date: Tue, 22 Jan 2013 13:50:57 +0100
Subject: [PATCH] Add test for backend._GetBlockDevSymlinkPath
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Add a unit test for the trivial β€œ_GetBlockDevSymlinkPath” function in
backend (small changes in the function were required).

Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: Bernardo Dal Seno <bdalseno@google.com>
---
 lib/backend.py                     | 13 ++++++++++---
 test/py/ganeti.backend_unittest.py | 18 ++++++++++++++++++
 2 files changed, 28 insertions(+), 3 deletions(-)

diff --git a/lib/backend.py b/lib/backend.py
index 027f38617..b6918c87f 100644
--- a/lib/backend.py
+++ b/lib/backend.py
@@ -1217,9 +1217,16 @@ def RunRenameInstance(instance, old_name, debug):
           " log file:\n%s", result.fail_reason, "\n".join(lines), log=False)
 
 
-def _GetBlockDevSymlinkPath(instance_name, idx):
-  return utils.PathJoin(pathutils.DISK_LINKS_DIR, "%s%s%d" %
-                        (instance_name, constants.DISK_SEPARATOR, idx))
+def _GetBlockDevSymlinkPath(instance_name, idx, _dir=None):
+  """Returns symlink path for block device.
+
+  """
+  if _dir is None:
+    _dir = pathutils.DISK_LINKS_DIR
+
+  return utils.PathJoin(_dir,
+                        ("%s%s%s" %
+                         (instance_name, constants.DISK_SEPARATOR, idx)))
 
 
 def _SymlinkBlockDev(instance_name, device_path, idx):
diff --git a/test/py/ganeti.backend_unittest.py b/test/py/ganeti.backend_unittest.py
index 4a852425b..74ae4e748 100755
--- a/test/py/ganeti.backend_unittest.py
+++ b/test/py/ganeti.backend_unittest.py
@@ -517,5 +517,23 @@ class TestSetWatcherPause(unittest.TestCase):
       self.assertEqual(os.stat(self.filename).st_mode & 0777, 0644)
 
 
+class TestGetBlockDevSymlinkPath(unittest.TestCase):
+  def setUp(self):
+    self.tmpdir = tempfile.mkdtemp()
+
+  def tearDown(self):
+    shutil.rmtree(self.tmpdir)
+
+  def _Test(self, name, idx):
+    self.assertEqual(backend._GetBlockDevSymlinkPath(name, idx,
+                                                     _dir=self.tmpdir),
+                     ("%s/%s%s%s" % (self.tmpdir, name,
+                                     constants.DISK_SEPARATOR, idx)))
+
+  def test(self):
+    for idx in range(100):
+      self._Test("inst1.example.com", idx)
+
+
 if __name__ == "__main__":
   testutils.GanetiTestProgram()
-- 
GitLab