diff --git a/gluster/swift/obj/diskfile.py b/gluster/swift/obj/diskfile.py index b3e91bc..1f8aa57 100644 --- a/gluster/swift/obj/diskfile.py +++ b/gluster/swift/obj/diskfile.py @@ -789,7 +789,7 @@ class DiskFile(object): self._metadata = None if self._fd is not None: fd, self._fd = self._fd, None - if self._fd > -1: + if fd > -1: do_close(fd) def get_metadata(self): diff --git a/test/unit/obj/test_diskfile.py b/test/unit/obj/test_diskfile.py index 64fa6e7..f8c26db 100644 --- a/test/unit/obj/test_diskfile.py +++ b/test/unit/obj/test_diskfile.py @@ -204,6 +204,16 @@ class TestDiskFile(unittest.TestCase): self.assertRaises(DiskFileNotOpen, gdf.reader) self.assertRaises(DiskFileNotOpen, gdf.__enter__) + def test_open_and_close(self): + mock_close = Mock() + + with mock.patch("gluster.swift.obj.diskfile.do_close", mock_close): + gdf = self._create_and_get_diskfile("vol0", "p57", "ufo47", + "bar", "z") + with gdf.open(): + assert gdf._fd is not None + self.assertTrue(mock_close.called) + def test_open_existing_metadata(self): the_path = os.path.join(self.td, "vol0", "bar") the_file = os.path.join(the_path, "z")