summaryrefslogtreecommitdiffstats
path: root/test/unit/common/test_Glusterfs.py
diff options
context:
space:
mode:
authorPeter Portante <peter.portante@redhat.com>2013-04-29 23:04:06 -0400
committerPeter Portante <pportant@redhat.com>2013-05-10 07:12:08 -0700
commit3a75da67cbcf09c19df2a9dca2f576d51ed2191d (patch)
tree8feb591c6126161691b375cbec9c2c64bff2182c /test/unit/common/test_Glusterfs.py
parentf534d66a4a29ebf7ca070f95cf33b57b4b7283a3 (diff)
Remove "ufo" directory, promoting contents to top-level
Additionally, we drop the "ufo" references from setup.py, spec file and README, and add the HISTORY file describing how the repo was initially created. We also update the RPM spec file to use the name "gluster-for-swift" to avoid colliding with existing RPM names from RHS 2.0 (the spec file's description was also updated, along with the version number). Change-Id: If804224a94208d57896e4189c63736ffc9e01d5e Signed-off-by: Peter Portante <peter.portante@redhat.com> Reviewed-on: http://review.gluster.org/4966 Reviewed-by: Luis Pabon <lpabon@redhat.com> Reviewed-by: Mohammed Junaid <junaid@redhat.com> Reviewed-by: Kaleb KEITHLEY <kkeithle@redhat.com> Reviewed-by: Peter Portante <pportant@redhat.com> Tested-by: Peter Portante <pportant@redhat.com>
Diffstat (limited to 'test/unit/common/test_Glusterfs.py')
-rw-r--r--test/unit/common/test_Glusterfs.py95
1 files changed, 95 insertions, 0 deletions
diff --git a/test/unit/common/test_Glusterfs.py b/test/unit/common/test_Glusterfs.py
new file mode 100644
index 0000000..7de060a
--- /dev/null
+++ b/test/unit/common/test_Glusterfs.py
@@ -0,0 +1,95 @@
+# Copyright (c) 2013 Red Hat, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+# implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import unittest
+import os, fcntl, errno, shutil
+from tempfile import mkdtemp
+import gluster.swift.common.Glusterfs as gfs
+
+def mock_os_path_ismount(path):
+ return True
+
+def mock_get_export_list():
+ return ['test', 'test2']
+
+def mock_os_system(cmd):
+ return False
+
+def mock_fcntl_lockf(f, *a, **kw):
+ raise IOError(errno.EAGAIN)
+
+def _init():
+ global _RUN_DIR, _OS_SYSTEM, _FCNTL_LOCKF
+ global _OS_PATH_ISMOUNT, __GET_EXPORT_LIST
+
+ _RUN_DIR = gfs.RUN_DIR
+ _OS_SYSTEM = os.system
+ _FCNTL_LOCKF = fcntl.lockf
+ _OS_PATH_ISMOUNT = os.path.ismount
+ __GET_EXPORT_LIST = gfs._get_export_list
+
+def _init_mock_variables(tmpdir):
+ os.system = mock_os_system
+ os.path.ismount = mock_os_path_ismount
+ gfs.RUN_DIR = os.path.join(tmpdir, 'var/run/swift')
+ gfs._get_export_list = mock_get_export_list
+
+def _reset_mock_variables():
+ gfs.RUN_DIR = _RUN_DIR
+ gfs._get_export_list = __GET_EXPORT_LIST
+
+ os.system = _OS_SYSTEM
+ fcntl.lockf = _FCNTL_LOCKF
+ os.path.ismount = _OS_PATH_ISMOUNT
+
+class TestGlusterfs(unittest.TestCase):
+ """ Tests for common.GlusterFS """
+
+ def setUp(self):
+ _init()
+
+ def test_mount(self):
+ try:
+ tmpdir = mkdtemp()
+ root = os.path.join(tmpdir, 'mnt/gluster-object')
+ drive = 'test'
+
+ _init_mock_variables(tmpdir)
+ assert gfs.mount(root, drive)
+ finally:
+ _reset_mock_variables()
+ shutil.rmtree(tmpdir)
+
+ def test_mount_egain(self):
+ try:
+ tmpdir = mkdtemp()
+ root = os.path.join(tmpdir, 'mnt/gluster-object')
+ drive = 'test'
+
+ _init_mock_variables(tmpdir)
+ assert gfs.mount(root, drive)
+ fcntl.lockf = mock_fcntl_lockf
+ assert gfs.mount(root, drive)
+ finally:
+ _reset_mock_variables()
+ shutil.rmtree(tmpdir)
+
+ def test_mount_get_export_list_err(self):
+ gfs._get_export_list = mock_get_export_list
+ assert not gfs.mount(None, 'drive')
+ _reset_mock_variables()
+
+ def tearDown(self):
+ _reset_mock_variables()