def test_create_folder(self): empty = self.getFileName("empty") empty_path = self.getPathFromDomain(empty) print("empty_path", empty_path) f = h5py.File(empty_path, mode='a') self.assertTrue(f.id.id is not None) if config.get("use_h5py"): # Folders not supported for h5py f.close() return if isinstance(f.id.id, str) and not f.id.id.startswith("g-"): # HSDS currently supports folders, but h5serv does not f.close() return f.close() folder_test = self.getFileName("create_folder_test") folder_path = self.getPathFromDomain(folder_test) + '/' print("folder_path", folder_path) dir = h5py.Folder(folder_path, mode='w') # create a new folder dir.close() # re-open dir = h5py.Folder(folder_path) self.assertTrue(dir.is_folder) dir.close()
def test_create_folder(self): folder_test = self.getFileName("create_folder_test") folder_path = self.getPathFromDomain(folder_test) + '/' print("folder_path", folder_path) dir = h5py.Folder(folder_path, mode='w') # create a new folder dir.close() # re-open dir = h5py.Folder(folder_path) self.assertTrue(dir.is_folder) dir.close()
def test_root_folder(self): test_domain = self.getFileName("folder_test") filepath = self.getPathFromDomain(test_domain) print(filepath) f = h5py.File(filepath, mode='a') self.assertTrue(f.id.id is not None) if config.get("use_h5py"): # Folders not supported for h5py f.close() return if isinstance(f.id.id, str) and not f.id.id.startswith("g-"): # HSDS currently supports folders, but h5serv does not f.close() return f.close() path_components = filepath.split('/') top_level_domain = path_components[1] dir = h5py.Folder('/') # get folder object for root found = False self.assertTrue(len(dir) > 0) self.assertTrue(dir.is_folder) for name in dir: # we should come across the given domain if top_level_domain == name: found = True dir.close() self.assertTrue(found)
def test_root_folder(self): test_domain = self.getFileName("folder_test") filepath = self.getPathFromDomain(test_domain) path_components = filepath.split('/') top_level_domain = path_components[1] dir = h5py.Folder('/') # get folder object for root found = False self.assertTrue(len(dir) > 0) self.assertTrue(dir.is_folder) for name in dir: # we should come across the given domain if top_level_domain == name: found = True dir.close() self.assertTrue(found)
def test_list(self): #loglevel = logging.DEBUG #logging.basicConfig( format='%(asctime)s %(message)s', level=loglevel) test_domain = self.getFileName("folder_test") filepath = self.getPathFromDomain(test_domain) print("test_domain:", filepath) # create test file if not present. # on first run, this may take a minute before it is visible as a folder item f = h5py.File(filepath, mode='a') if config.get("use_h5py"): # Folders not supported for h5py f.close() return self.assertTrue(f.id.id is not None) if isinstance(f.id.id, str) and not f.id.id.startswith("g-"): # HSDS currently supports folders, but h5serv does not f.close() return f.close() folder_name = op.dirname(filepath) + '/' dir = h5py.Folder(folder_name) # get folder object self.assertEqual(dir.domain, folder_name) self.assertTrue(dir.modified) self.assertTrue(dir.created) self.assertEqual(str(dir), folder_name) self.assertEqual(dir.owner, self.test_user1["name"]) dir_parent = dir.parent self.assertEqual(dir_parent[:-1], op.dirname(folder_name[:-1])) # get ACL for dir dir_acl = dir.getACL(self.test_user1["name"]) self.assertEqual(len(dir_acl.keys()), 7) for k in dir_acl.keys(): self.assertTrue(dir_acl[k]) dir_acls = dir.getACLs() self.assertTrue(isinstance(dir_acls, list)) count = len(dir) self.assertTrue(count > 1) test_domain_found = False i = 0 for name in dir: if name == op.basename(test_domain): self.assertFalse(test_domain_found) test_domain_found = True item = dir[name] #'owner': 'test_user1', #'created': 1496729517.2346532, #'class': 'domain', #'name': '/org/hdfgroup/h5pyd_test/bool_dset', #'lastModified': 1496729517.2346532 self.assertTrue("lastModified" in item) self.assertTrue("created" in item) self.assertTrue("owner" in item) self.assertTrue("class" in item) i += 1 self.assertTrue(test_domain_found) self.assertEqual(i, count) dir.close() # try opening a domain object as a folder f = h5py.Folder(filepath + '/') count = len(f) self.assertEqual(count, 0) for name in f: self.assertTrue(False) # unexpected f.close()
def test_list(self): #loglevel = logging.DEBUG #logging.basicConfig( format='%(asctime)s %(message)s', level=loglevel) test_domain = self.getFileName("folder_test") filepath = self.getPathFromDomain(test_domain) print(filepath) # create test file if not present. # on first run, this may take a minute before it is visible as a folder item f = h5py.File(filepath, mode='a') if config.get("use_h5py"): # Folders not supported for h5py f.close() return self.assertTrue(f.id.id is not None) if isinstance(f.id.id, str) and not f.id.id.startswith("g-"): # HSDS currently supports folders, but h5serv does not f.close() return f.close() folder_name = op.dirname(filepath) + '/' d = h5py.Folder(folder_name) # get folder object self.assertEqual(d.domain, folder_name) self.assertTrue(d.modified) self.assertTrue(d.created) self.assertEqual(str(d), folder_name) self.assertEqual(d.owner, self.test_user1["name"]) dir_parent = d.parent self.assertEqual(dir_parent[:-1], op.dirname(folder_name[:-1])) # get ACL for dir dir_acl = d.getACL(self.test_user1["name"]) self.assertEqual(len(dir_acl.keys()), 7) for k in dir_acl.keys(): self.assertTrue(dir_acl[k]) dir_acls = d.getACLs() self.assertTrue(isinstance(dir_acls, list)) count = len(d) self.assertTrue(count > 1) test_domain_found = False i = 0 for name in d: if name == op.basename(test_domain): self.assertFalse(test_domain_found) test_domain_found = True item = d[name] #'owner': 'test_user1', #'created': 1496729517.2346532, #'class': 'domain', #'name': '/org/hdfgroup/h5pyd_test/bool_dset', #'lastModified': 1496729517.2346532 #self.assertTrue("created" in item) self.assertTrue("owner" in item) self.assertTrue("class" in item) self.assertTrue("name" in item) if "root" in item: # non-folder objects will have last modified time self.assertTrue("lastModified" in item) self.assertTrue("created" in item) # shouldn't have total_size, other verbose only,items self.assertFalse("total_size" in item) i += 1 self.assertTrue(test_domain_found) self.assertEqual(i, count) d.close() # open in verbose mode d = h5py.Folder(folder_name, verbose=True) # get folder object self.assertEqual(d.domain, folder_name) self.assertTrue(d.modified) self.assertTrue(d.created) self.assertEqual(str(d), folder_name) self.assertEqual(d.owner, self.test_user1["name"]) dir_parent = d.parent self.assertEqual(dir_parent[:-1], op.dirname(folder_name[:-1])) # get ACL for dir dir_acl = d.getACL(self.test_user1["name"]) self.assertEqual(len(dir_acl.keys()), 7) for k in dir_acl.keys(): self.assertTrue(dir_acl[k]) dir_acls = d.getACLs() self.assertTrue(isinstance(dir_acls, list)) count = len(d) self.assertTrue(count > 1) test_domain_found = False i = 0 for name in d: if name == op.basename(test_domain): self.assertFalse(test_domain_found) test_domain_found = True item = d[name] #'owner': 'test_user1', #'created': 1496729517.2346532, #'class': 'domain', #'name': '/org/hdfgroup/h5pyd_test/bool_dset', #'lastModified': 1496729517.2346532 #self.assertTrue("created" in item) self.assertTrue("owner" in item) self.assertTrue("class" in item) self.assertTrue("name" in item) if "root" in item: # non-folder objects will have last modified time self.assertTrue("lastModified" in item) self.assertTrue("created" in item) # these should show up only in verbose mode self.assertTrue("md5_sum" in item) self.assertTrue("num_groups" in item) self.assertTrue("num_datasets" in item) self.assertTrue("num_datatypes" in item) self.assertTrue("num_objects" in item) self.assertTrue("num_chunks" in item) self.assertTrue("num_linked_chunks" in item) self.assertTrue("total_size" in item) self.assertTrue("allocated_bytes" in item) self.assertTrue("metadata_bytes" in item) self.assertTrue("metadata_bytes" in item) self.assertTrue("linked_bytes" in item) self.assertTrue("compressors" in item) i += 1 self.assertTrue(test_domain_found) self.assertEqual(i, count) d.close() # try opening a domain object as a folder f = h5py.Folder(filepath + '/') count = len(f) self.assertEqual(count, 0) for name in f: self.assertTrue(False) # unexpected f.close()