summaryrefslogtreecommitdiffstats
path: root/test/unit/obj
diff options
context:
space:
mode:
authorChetan Risbud <crisbud@redhat.com>2013-08-01 19:36:31 +0530
committerLuis Pabon <lpabon@redhat.com>2013-08-28 19:28:19 -0700
commit8737f9e92a5c9dbf0d75e0702c7ab48f287f2761 (patch)
tree0df727348e52f384523a80bf8abdae03b68892a8 /test/unit/obj
parent2542fb2398ab8079620a02dc189761d24a2e19e0 (diff)
Handle GET on zero content length failure case.
Added a fake_file class that implements minimal set of functions that are invoked by the code in GET. BUG: 987841 https://bugzilla.redhat.com/show_bug.cgi?id=987841 Change-Id: I5bdf5be1c0c4c8231f34c9be529e6edc83774f2e Signed-off-by: Chetan Risbud <crisbud@redhat.com> Reviewed-on: http://review.gluster.org/5511 Reviewed-by: Luis Pabon <lpabon@redhat.com> Tested-by: Luis Pabon <lpabon@redhat.com>
Diffstat (limited to 'test/unit/obj')
-rw-r--r--test/unit/obj/test_diskfile.py64
1 files changed, 47 insertions, 17 deletions
diff --git a/test/unit/obj/test_diskfile.py b/test/unit/obj/test_diskfile.py
index 819abe7..2eef822 100644
--- a/test/unit/obj/test_diskfile.py
+++ b/test/unit/obj/test_diskfile.py
@@ -238,7 +238,6 @@ class TestDiskFile(unittest.TestCase):
assert gdf._obj == "d"
assert gdf.data_file == the_dir
assert gdf._is_dir
- assert gdf.fp is None
assert gdf.metadata == exp_md
finally:
shutil.rmtree(td)
@@ -272,30 +271,61 @@ class TestDiskFile(unittest.TestCase):
iter_hook='hook')
assert gdf.iter_hook == 'hook'
- def test_close(self):
+ def test_close_no_open_fp(self):
assert not os.path.exists("/tmp/foo")
- gdf = DiskFile("/tmp/foo", "vol0", "p57", "ufo47", "bar", "z", self.lg)
- # Should be a no-op, as by default is_dir is False, but fp is None
- gdf.close()
-
- gdf._is_dir = True
- gdf.fp = "123"
- # Should still be a no-op as is_dir is True (marker directory)
- self.assertRaises(AssertionError, gdf.close)
- assert gdf.fp == "123"
-
+ gdf = DiskFile("/tmp/foo", "vol0", "p57", "ufo47", "bar",
+ "z", self.lg, keep_data_fp=True)
gdf._is_dir = False
- saved_dc = gluster.swift.obj.diskfile.do_close
self.called = False
+
def our_do_close(fp):
self.called = True
- gluster.swift.obj.diskfile.do_close = our_do_close
- try:
+
+ with mock.patch("gluster.swift.obj.diskfile.do_close", our_do_close):
gdf.close()
- assert self.called
+ assert not self.called
assert gdf.fp is None
+
+ def test_close_dir_object(self):
+ td = tempfile.mkdtemp()
+ the_cont = os.path.join(td, "vol0", "bar")
+ the_dir = "dir"
+ self.called = False
+ try:
+ os.makedirs(os.path.join(the_cont, "dir"))
+ gdf = DiskFile(td, "vol0", "p57", "ufo47", "bar",
+ "dir", self.lg, keep_data_fp=True)
+
+ def our_do_close(fp):
+ self.called = True
+
+ with mock.patch("gluster.swift.obj.diskfile.do_close",
+ our_do_close):
+ gdf.close()
+ assert self.called
+ finally:
+ shutil.rmtree(td)
+
+ def test_close_file_object(self):
+ td = tempfile.mkdtemp()
+ the_cont = os.path.join(td, "vol0", "bar")
+ the_file = os.path.join(the_cont, "z")
+ self.called = False
+ try:
+ os.makedirs(the_cont)
+ with open(the_file, "wb") as fd:
+ fd.write("1234")
+ gdf = DiskFile(td, "vol0", "p57", "ufo47", "bar",
+ "z", self.lg, keep_data_fp=True)
+ def our_do_close(fp):
+ self.called = True
+
+ with mock.patch("gluster.swift.obj.diskfile.do_close",
+ our_do_close):
+ gdf.close()
+ assert self.called
finally:
- gluster.swift.obj.diskfile.do_close = saved_dc
+ shutil.rmtree(td)
def test_is_deleted(self):
assert not os.path.exists("/tmp/foo")