diff options
author | Chetan Risbud <crisbud@redhat.com> | 2013-08-01 19:36:31 +0530 |
---|---|---|
committer | Luis Pabon <lpabon@redhat.com> | 2013-08-28 19:28:19 -0700 |
commit | 8737f9e92a5c9dbf0d75e0702c7ab48f287f2761 (patch) | |
tree | 0df727348e52f384523a80bf8abdae03b68892a8 /test/unit | |
parent | 2542fb2398ab8079620a02dc189761d24a2e19e0 (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')
-rw-r--r-- | test/unit/obj/test_diskfile.py | 64 |
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") |