fix __exit__ function not closing file descriptor
The file descriptor is not being closed because it is self._fd is None Change-Id: I7edc8a78b09bdd76d59ac8f3dbc809af652f9b0e Signed-off-by: Thiago da Silva <thiago@redhat.com> Reviewed-on: http://review.gluster.org/7315 Reviewed-by: Luis Pabon <lpabon@redhat.com> Tested-by: Luis Pabon <lpabon@redhat.com>
This commit is contained in:
parent
972c252c41
commit
09688dc594
@ -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):
|
||||
|
@ -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")
|
||||
|
Loading…
x
Reference in New Issue
Block a user