def test_mkstemp(self): td = tempfile.mkdtemp() the_path = os.path.join(td, "vol0", "bar") the_dir = os.path.join(the_path, "dir") try: gdf = Gluster_DiskFile(td, "vol0", "p57", "ufo47", "bar", "dir/z", self.lg) saved_tmppath = '' with gdf.mkstemp() as fd: assert gdf.datadir == os.path.join(td, "vol0", "bar", "dir") assert os.path.isdir(gdf.datadir) saved_tmppath = gdf.tmppath assert os.path.dirname(saved_tmppath) == gdf.datadir assert os.path.basename(saved_tmppath)[:3] == '.z.' assert os.path.exists(saved_tmppath) os.write(fd, "123") # At the end of previous with block a close on fd is called. # Calling os.close on the same fd will raise an OSError # exception and we must catch it. try: os.close(fd) except OSError as err: pass else: self.fail("Exception expected") assert not os.path.exists(saved_tmppath) finally: shutil.rmtree(td)
def test_put_obj_path(self): the_obj_path = os.path.join("b", "a") the_file = os.path.join(the_obj_path, "z") td = tempfile.mkdtemp() try: gdf = Gluster_DiskFile(td, "vol0", "p57", "ufo47", "bar", the_file, self.lg) assert gdf._obj == "z" assert gdf._obj_path == the_obj_path assert gdf.name == os.path.join("bar", "b", "a") assert gdf.datadir == os.path.join(td, "vol0", "bar", "b", "a") assert gdf.data_file is None body = '1234\n' etag = md5() etag.update(body) etag = etag.hexdigest() metadata = { 'X-Timestamp': '1234', 'Content-Type': 'file', 'ETag': etag, 'Content-Length': '5', } with gdf.mkstemp() as fd: assert gdf.tmppath is not None tmppath = gdf.tmppath os.write(fd, body) gdf.put(fd, metadata) assert gdf.data_file == os.path.join(td, "vol0", "bar", "b", "a", "z") assert os.path.exists(gdf.data_file) assert not os.path.exists(tmppath) finally: shutil.rmtree(td)
def test_put_obj_path(self): the_obj_path = os.path.join("b", "a") the_file = os.path.join(the_obj_path, "z") td = tempfile.mkdtemp() try: gdf = Gluster_DiskFile(td, "vol0", "p57", "ufo47", "bar", the_file, self.lg) assert gdf._obj == "z" assert gdf._obj_path == the_obj_path assert gdf.name == os.path.join("bar", "b", "a") assert gdf.datadir == os.path.join(td, "vol0", "bar", "b", "a") assert gdf.data_file is None body = '1234\n' etag = md5() etag.update(body) etag = etag.hexdigest() metadata = { 'X-Timestamp': '1234', 'Content-Type': 'file', 'ETag': etag, 'Content-Length': '5', } with gdf.mkstemp() as fd: assert gdf.tmppath is not None tmppath = gdf.tmppath os.write(fd, body) gdf.put(fd, metadata) assert gdf.data_file == os.path.join(td, "vol0", "bar", "b", "a", "z") assert os.path.exists(gdf.data_file) assert not os.path.exists(tmppath) finally: shutil.rmtree(td)
def test_put(self): td = tempfile.mkdtemp() try: gdf = Gluster_DiskFile(td, "vol0", "p57", "ufo47", "bar", "z", self.lg) assert gdf._obj == "z" assert gdf._obj_path == "" assert gdf.name == "bar" assert gdf.datadir == os.path.join(td, "vol0", "bar") assert gdf.data_file is None body = "1234\n" etag = md5() etag.update(body) etag = etag.hexdigest() metadata = {"X-Timestamp": "1234", "Content-Type": "file", "ETag": etag, "Content-Length": "5"} with gdf.mkstemp() as fd: assert gdf.tmppath is not None tmppath = gdf.tmppath os.write(fd, body) gdf.put(fd, metadata) assert gdf.data_file == os.path.join(td, "vol0", "bar", "z") assert os.path.exists(gdf.data_file) assert not os.path.exists(tmppath) finally: shutil.rmtree(td)
def test_mkstemp(self): td = tempfile.mkdtemp() the_path = os.path.join(td, "vol0", "bar") the_dir = os.path.join(the_path, "dir") try: gdf = Gluster_DiskFile(td, "vol0", "p57", "ufo47", "bar", "dir/z", self.lg) saved_tmppath = '' with gdf.mkstemp() as fd: assert gdf.tmpdir == os.path.join(td, "vol0", "tmp") assert os.path.isdir(gdf.tmpdir) saved_tmppath = gdf.tmppath assert os.path.dirname(saved_tmppath) == gdf.tmpdir assert os.path.exists(saved_tmppath) os.write(fd, "123") assert not os.path.exists(saved_tmppath) finally: shutil.rmtree(td)
def test_mkstemp(self): td = tempfile.mkdtemp() the_path = os.path.join(td, "vol0", "bar") the_dir = os.path.join(the_path, "dir") try: gdf = Gluster_DiskFile(td, "vol0", "p57", "ufo47", "bar", "dir/z", self.lg) saved_tmppath = '' with gdf.mkstemp() as fd: assert gdf.datadir == os.path.join(td, "vol0", "bar", "dir") assert os.path.isdir(gdf.datadir) saved_tmppath = gdf.tmppath assert os.path.dirname(saved_tmppath) == gdf.datadir assert os.path.basename(saved_tmppath)[:3] == '.z.' assert os.path.exists(saved_tmppath) os.write(fd, "123") assert not os.path.exists(saved_tmppath) finally: shutil.rmtree(td)
def test_mkstemp_err_on_close(self): td = tempfile.mkdtemp() the_path = os.path.join(td, "vol0", "bar") the_dir = os.path.join(the_path, "dir") try: gdf = Gluster_DiskFile(td, "vol0", "p57", "ufo47", "bar", "dir/z", self.lg) saved_tmppath = '' with gdf.mkstemp() as fd: assert gdf.datadir == os.path.join(td, "vol0", "bar", "dir") assert os.path.isdir(gdf.datadir) saved_tmppath = gdf.tmppath assert os.path.dirname(saved_tmppath) == gdf.datadir assert os.path.basename(saved_tmppath)[:3] == '.z.' assert os.path.exists(saved_tmppath) os.write(fd, "123") # Closing the fd prematurely should not raise any exceptions. os.close(fd) assert not os.path.exists(saved_tmppath) finally: shutil.rmtree(td)