summaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorThiago da Silva <thiago@redhat.com>2014-03-26 16:31:28 -0400
committerThiago da Silva <thiago@redhat.com>2014-03-27 15:21:50 -0400
commitbd683d93cb8d967f761d53f7a6b4243eb8eaedea (patch)
tree5f73d7390690a9de7e3bf2371fb6590d5ecce95b /test
parentf50cec44586e851c3d9e29dd59574696ae6f0c3a (diff)
adding new apis requested from gluster-swift proj
This patch adds new functions that are used in gluster-swift. These functions are: dup, lseek, getatime, getctime, getmtime Change-Id: I09036f7e393a89e09913f7f6de173e1eca8dca95 Signed-off-by: Thiago da Silva <thiago@redhat.com>
Diffstat (limited to 'test')
-rw-r--r--test/functional/libgfapi-python-tests.py24
-rw-r--r--test/unit/gluster/test_gfapi.py20
2 files changed, 43 insertions, 1 deletions
diff --git a/test/functional/libgfapi-python-tests.py b/test/functional/libgfapi-python-tests.py
index ac5c38f..baad035 100644
--- a/test/functional/libgfapi-python-tests.py
+++ b/test/functional/libgfapi-python-tests.py
@@ -78,6 +78,7 @@ class FileOpsTest(unittest.TestCase):
self.assertEqual(rc, len(self.data))
ret = fd.fsync()
self.assertEqual(ret, 0)
+ self.assertEqual(fd.originalpath, self.path)
def tearDown(self):
self.path = None
@@ -110,6 +111,29 @@ class FileOpsTest(unittest.TestCase):
g.close()
self.fail("Expected a OSError with errno.EEXIST")
+ def test_write_file_dup_lseek_read(self):
+ try:
+ f = self.vol.open("dune", os.O_CREAT | os.O_EXCL | os.O_RDWR)
+ f.write("I must not fear. Fear is the mind-killer.")
+ fdup = f.dup()
+ self.assertTrue(isinstance(fdup, gfapi.File))
+ f.close()
+ ret = fdup.lseek(0, os.SEEK_SET)
+ self.assertEqual(ret, 0)
+
+ buf = fdup.read(15)
+ self.assertEqual(buf.value, "I must not fear")
+
+ ret = fdup.lseek(29, os.SEEK_SET)
+ self.assertEqual(ret, 29)
+
+ buf = fdup.read(11)
+ self.assertEqual(buf.value, "mind-killer")
+
+ fdup.close()
+ except OSError as e:
+ self.fail(e.message)
+
def test_exists(self):
e = self.vol.exists(self.path)
self.assertTrue(e)
diff --git a/test/unit/gluster/test_gfapi.py b/test/unit/gluster/test_gfapi.py
index ed7ed45..e0308f7 100644
--- a/test/unit/gluster/test_gfapi.py
+++ b/test/unit/gluster/test_gfapi.py
@@ -49,7 +49,7 @@ class TestFile(unittest.TestCase):
@classmethod
def setUpClass(cls):
- cls.fd = gfapi.File(2)
+ cls.fd = gfapi.File(2, 'fakefile')
@classmethod
def tearDownClass(cls):
@@ -77,6 +77,16 @@ class TestFile(unittest.TestCase):
with patch("glusterfs.gfapi.api.glfs_fchown", mock_glfs_fchown):
self.assertRaises(OSError, self.fd.fchown, 9, 11)
+ def test_dup(self):
+ mock_glfs_dup = Mock()
+ mock_glfs_dup.return_value = 2
+
+ with patch("glusterfs.gfapi.api.glfs_dup", mock_glfs_dup):
+ f = self.fd.dup()
+ self.assertTrue(isinstance(f, gfapi.File))
+ self.assertEqual(f.originalpath, "fakefile")
+ self.assertEqual(f.fd, 2)
+
def test_fdatasync_success(self):
mock_glfs_fdatasync = Mock()
mock_glfs_fdatasync.return_value = 4
@@ -122,6 +132,14 @@ class TestFile(unittest.TestCase):
with patch("glusterfs.gfapi.api.glfs_fsync", mock_glfs_fsync):
self.assertRaises(OSError, self.fd.fsync)
+ def test_lseek_success(self):
+ mock_glfs_lseek = Mock()
+ mock_glfs_lseek.return_value = 20
+
+ with patch("glusterfs.gfapi.api.glfs_lseek", mock_glfs_lseek):
+ o = self.fd.lseek(20, os.SEEK_SET)
+ self.assertEqual(o, 20)
+
def test_read_success(self):
def _mock_glfs_read(fd, rbuf, buflen, flags):
rbuf.value = "hello"