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 <thiago@redhat.com> Reviewed-on: http://review.gluster.org/6053 Reviewed-by: Luis Pabon <lpabon@redhat.com> Tested-by: Luis Pabon <lpabon@redhat.com>
This commit is contained in:
parent
2d56bc3803
commit
46cd43fdf4
@ -21,10 +21,9 @@ import logging
|
||||
import urllib
|
||||
|
||||
from ConfigParser import ConfigParser, NoSectionError, NoOptionError
|
||||
from swift.common.utils import TRUE_VALUES, search_tree
|
||||
from swift.common.utils import TRUE_VALUES
|
||||
from gluster.swift.common.fs_utils import do_ismount
|
||||
from gluster.swift.common.exceptions import GlusterfsException, \
|
||||
FailureToMountError
|
||||
from gluster.swift.common.exceptions import FailureToMountError
|
||||
|
||||
#
|
||||
# Read the fs.conf file once at startup (module load)
|
||||
@ -286,28 +285,3 @@ def _get_export_list():
|
||||
export_list.append(item.split(':')[1].strip(' '))
|
||||
|
||||
return export_list
|
||||
|
||||
|
||||
def get_mnt_point(vol_name, conf_dir=SWIFT_DIR, conf_file="object-server*"):
|
||||
"""
|
||||
Read the object-server's configuration file and return
|
||||
the device value.
|
||||
|
||||
:param vol_name: target GlusterFS volume name
|
||||
:param conf_dir: Swift configuration directory root
|
||||
:param conf_file: configuration file name for which to search
|
||||
:returns full path to given target volume name
|
||||
:raises GlusterfsException if unable to fetch mount point root from
|
||||
configuration files
|
||||
"""
|
||||
mnt_dir = ''
|
||||
conf_files = search_tree(conf_dir, conf_file, '.conf')
|
||||
if not conf_files:
|
||||
raise GlusterfsException("Config file, %s, in directory, %s, "
|
||||
"not found" % (conf_file, conf_dir))
|
||||
_conf = ConfigParser()
|
||||
if _conf.read(conf_files[0]):
|
||||
mnt_dir = _conf.get('DEFAULT', 'devices', '')
|
||||
return os.path.join(mnt_dir, vol_name)
|
||||
else:
|
||||
raise GlusterfsException("Config file, %s, is empty" % conf_files[0])
|
||||
|
@ -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()
|
||||
|
2
tox.ini
2
tox.ini
@ -14,7 +14,7 @@ deps =
|
||||
--download-cache={homedir}/.pipcache
|
||||
-r{toxinidir}/tools/test-requires
|
||||
changedir = {toxinidir}/test/unit
|
||||
commands = nosetests -v --exe --with-xunit --with-coverage --cover-package gluster --cover-erase --cover-xml --cover-html --cover-branches {posargs}
|
||||
commands = nosetests -v --exe --with-xunit --with-coverage --cover-package gluster --cover-erase --cover-xml --cover-html --cover-branches --with-html-output {posargs}
|
||||
|
||||
[tox:jenkins]
|
||||
downloadcache = ~/cache/pip
|
||||
|
Loading…
x
Reference in New Issue
Block a user