From 46cd43fdf401b16f9e1b588e5fc8d2c5dd599b37 Mon Sep 17 00:00:00 2001 From: Thiago da Silva Date: Tue, 8 Oct 2013 13:39:25 -0400 Subject: Adding new unit tests and removed some unused functions New unit tests help improve test coverage of common/Glusterfs.py code Also removed a function that was no longer being used. Change-Id: Iaa0eed3d2b9ffcc148c1e00b28322ebf93b3f13c Signed-off-by: Thiago da Silva Reviewed-on: http://review.gluster.org/6053 Reviewed-by: Luis Pabon Tested-by: Luis Pabon --- test/unit/common/test_Glusterfs.py | 108 +++++++++++++++++++++++++++++++++++++ 1 file changed, 108 insertions(+) (limited to 'test') diff --git a/test/unit/common/test_Glusterfs.py b/test/unit/common/test_Glusterfs.py index bcb233c..8a111f7 100644 --- a/test/unit/common/test_Glusterfs.py +++ b/test/unit/common/test_Glusterfs.py @@ -16,6 +16,8 @@ import unittest import os, fcntl, errno, shutil import time +import StringIO +import mock from tempfile import mkdtemp import gluster.swift.common.Glusterfs as gfs @@ -124,5 +126,111 @@ class TestGlusterfs(unittest.TestCase): finally: shutil.rmtree(tmpdir) + def test_get_drive_mount_point_name_unique_id_None(self): + """ + Using the public method mount to test _get_drive_mount_point_name + """ + try: + tmpdir = mkdtemp() + root = os.path.join(tmpdir, 'mnt/gluster-object') + drive = 'test' + + _init_mock_variables(tmpdir) + gfs._allow_mount_per_server = True + self.assertTrue(gfs.mount(root, drive)) + finally: + gfs._allow_mount_per_server = False + _reset_mock_variables() + shutil.rmtree(tmpdir) + + def test_get_drive_mount_point_name_unique_id_exists(self): + """ + Using the public method mount to test _get_drive_mount_point_name + and the _unique_id is already defined + """ + try: + tmpdir = mkdtemp() + root = os.path.join(tmpdir, 'mnt/gluster-object') + drive = 'test' + + _init_mock_variables(tmpdir) + gfs._allow_mount_per_server = True + gfs._unique_id = 0 + self.assertTrue(gfs.mount(root, drive)) + finally: + gfs._allow_mount_per_server = False + gfs._unique_id = None + _reset_mock_variables() + shutil.rmtree(tmpdir) + + def test_invalid_drive_name(self): + try: + tmpdir = mkdtemp() + root = os.path.join(tmpdir, 'mnt/gluster-object') + drive = 'te st' + + _init_mock_variables(tmpdir) + self.assertFalse(gfs.mount(root, drive)) + finally: + _reset_mock_variables() + shutil.rmtree(tmpdir) + + def test_already_mounted(self): + try: + tmpdir = mkdtemp() + root = os.path.join(tmpdir, 'mnt/gluster-object') + drive = 'test' + + _init_mock_variables(tmpdir) + def mock_do_ismount(path): + return True + + with mock.patch("gluster.swift.common.Glusterfs.do_ismount", + mock_do_ismount): + self.assertTrue(gfs.mount(root, drive)) + finally: + _reset_mock_variables() + shutil.rmtree(tmpdir) + + def test_get_export_list(self): + try: + tmpdir = mkdtemp() + root = os.path.join(tmpdir, 'mnt/gluster-object') + drive = 'test' + + # undo mocking of _get_export_list + tmp_get_export_list = gfs._get_export_list + _init_mock_variables(tmpdir) + gfs._get_export_list = tmp_get_export_list + + def mock_os_popen(cmd): + mock_string = """ + Volume Name: test + Type: Distribute + Volume ID: 361cfe52-75c0-4a76-88af-0092a92270b5 + Status: Started + Number of Bricks: 1 + Transport-type: tcp + Bricks: + Brick1: myhost:/export/brick/test + + Volume Name: test2 + Type: Distribute + Volume ID: a6df4e2b-6040-4e19-96f1-b8d8c0a29528 + Status: Started + Number of Bricks: 1 + Transport-type: tcp + Bricks: + Brick1: myhost:/export/brick/test2 + """ + return StringIO.StringIO(mock_string) + + # mock os_popen + with mock.patch('os.popen', mock_os_popen): + self.assertTrue(gfs.mount(root, drive)) + finally: + _reset_mock_variables() + shutil.rmtree(tmpdir) + def tearDown(self): _reset_mock_variables() -- cgit