Exemple #1
0
 def testDeleteAnonymous(self):
     # test delete works with anonymous dataset
     domain = 'tall_dset22_deleted.' + config.get('domain')  
     root_uuid = helper.getRootUUID(domain)
     self.assertTrue(helper.validateId(root_uuid))
     g2_uuid = helper.getUUID(domain, root_uuid, 'g2')
     self.assertTrue(helper.validateId(g2_uuid))
     d22_uuid = helper.getUUID(domain, g2_uuid, 'dset2.2')
     self.assertTrue(helper.validateId(d22_uuid))
     
     # delete g2, that will make dataset anonymous
     req = self.endpoint + "/groups/" + g2_uuid
     headers = {'host': domain}
     rsp = requests.delete(req, headers=headers)
     self.failUnlessEqual(rsp.status_code, 200)
     
     # verify that a GET on the dataset succeeds still
     req = helper.getEndpoint() + "/datasets/" + d22_uuid
     headers = {'host': domain}
     rsp = requests.get(req, headers=headers)
     self.failUnlessEqual(rsp.status_code, 200)
     
     # delete dataset...
     req = self.endpoint + "/datasets/" + d22_uuid
     headers = {'host': domain}
     rsp = requests.delete(req, headers=headers)
     self.failUnlessEqual(rsp.status_code, 200)
     
     # verify that a GET on the dataset fails
     req = helper.getEndpoint() + "/datasets/" + d22_uuid
     headers = {'host': domain}
     rsp = requests.get(req, headers=headers)
     self.failUnlessEqual(rsp.status_code, 410)
Exemple #2
0
 def testPutDimensionScale(self):
     domain = 'dim_scale_updated.' + config.get('domain')
     root_uuid = helper.getRootUUID(domain)
     headers = {'host': domain}
    
     dset_uuid = helper.getUUID(domain, root_uuid, 'temperatures')
     
     scale_x_uuid = helper.getUUID(domain, root_uuid, 'scale_x') 
     scale_y_uuid = helper.getUUID(domain, root_uuid, 'scale_y') 
     scale_z_uuid = helper.getUUID(domain, root_uuid, 'scale_z') 
     
     # attach a dimension_list attribute to temperatures dataset
     reftype = {'class': 'H5T_REFERENCE', 'base': 'H5T_STD_REF_OBJ' }
     
     attr_name = "DIMENSION_LIST"
     vlen_type = {'class': 'H5T_VLEN', 'base': reftype }
     value = []
     for item_uuid in (scale_x_uuid, scale_y_uuid, scale_z_uuid):
         obj_ref = 'datasets/' + item_uuid
         vlen_item = (obj_ref,)
         value.append(vlen_item)
         
      
     payload = {'type': vlen_type, 'shape': 3, 'value': value}
     req = self.endpoint + "/datasets/" + dset_uuid + "/attributes/" + attr_name
     rsp = requests.put(req, data=json.dumps(payload), headers=headers)
     self.failUnlessEqual(rsp.status_code, 201)  # create attribute
Exemple #3
0
    def testGetDimensionScale(self):
        domain = 'dim_scale.' + config.get('domain')  
        root_uuid = helper.getRootUUID(domain)
        dset_uuid = helper.getUUID(domain, root_uuid, 'temperatures') 
        scale_x_uuid = helper.getUUID(domain, root_uuid, 'scale_x') 
        scale_y_uuid = helper.getUUID(domain, root_uuid, 'scale_y') 
        scale_z_uuid = helper.getUUID(domain, root_uuid, 'scale_z') 
        # now try reading the dimension list attribute
        req = helper.getEndpoint() + "/datasets/" + dset_uuid + "/attributes/DIMENSION_LIST"
        headers = {'host': domain}
        rsp = requests.get(req, headers=headers)
        self.failUnlessEqual(rsp.status_code, 200)
        rspJson = json.loads(rsp.text)
        shape = rspJson['shape']
        self.assertEqual(shape['class'], 'H5S_SIMPLE')
        self.assertTrue('dims'  in shape)
        dims = shape['dims']
        self.assertEqual(len(dims), 1)
        self.assertEqual(dims[0], 3)

        typeItem = rspJson['type']
        self.assertEqual(typeItem['class'], 'H5T_VLEN')
        baseType = typeItem['base']
        self.assertEqual(baseType['class'], 'H5T_REFERENCE')
        self.assertEqual(baseType['base'], 'H5T_STD_REF_OBJ')
        data = rspJson['value'] 
        self.assertEqual(len(data), 3)
        self.assertEqual(data[0], ['datasets/' + scale_x_uuid])
        self.assertEqual(data[1], ['datasets/' + scale_y_uuid])
        self.assertEqual(data[2], ['datasets/' + scale_z_uuid])

        # read the x dimenscale and verify it refernces the temperature dataset
        req = helper.getEndpoint() + "/datasets/" + scale_x_uuid + "/attributes/REFERENCE_LIST"
        rsp = requests.get(req, headers=headers)
        self.failUnlessEqual(rsp.status_code, 200)
        rspJson = json.loads(rsp.text)
        typeItem = rspJson['type']
        self.assertEqual(typeItem['class'], 'H5T_COMPOUND')
        fields = typeItem['fields']
        self.assertEqual(len(fields), 2)
        refType = fields[0]["type"]
        self.assertEqual(refType["class"], 'H5T_REFERENCE')
        intType = fields[1]["type"]
        self.assertEqual(intType["class"], 'H5T_INTEGER')
        shape = rspJson['shape']
        self.assertEqual(shape['class'], 'H5S_SIMPLE')
        self.assertTrue('dims'  in shape)
        dims = shape['dims']
        self.assertEqual(len(dims), 1)
        self.assertEqual(dims[0], 1)
        data = rspJson['value']
        elem = data[0]
       
        self.assertEqual(len(elem), 2)  # two fields of a compound type
        self.assertEqual(elem[0], 'datasets/' + dset_uuid) #  reference primary dataset
        self.assertEqual(elem[1], 0)  # first dimension    
Exemple #4
0
 def testGet(self):
     for domain_name in ('tall', 'tall_ro'):
         domain = domain_name + '.' + config.get('domain') 
         rootUUID = helper.getRootUUID(domain)
         g1UUID = helper.getUUID(domain, rootUUID, 'g1')
         g11UUID = helper.getUUID(domain, g1UUID, 'g1.1')
            
         # rank 1 dataset
         dset112UUID = helper.getUUID(domain, g11UUID, 'dset1.1.2') 
         req = helper.getEndpoint() + "/datasets/" + dset112UUID
         headers = {'host': domain}
         rsp = requests.get(req, headers=headers)
         self.failUnlessEqual(rsp.status_code, 200)
         rspJson = json.loads(rsp.text)
         self.assertEqual(rspJson['id'], dset112UUID)
         typeItem = rspJson['type']  
         self.assertEqual(typeItem['base'], 'H5T_STD_I32BE')
         shape = rspJson['shape']
         self.assertEqual(shape['class'], 'H5S_SIMPLE')
         self.assertEqual(len(shape['dims']), 1)
         self.assertEqual(shape['dims'][0], 20)  
         req = helper.getEndpoint() + "/datasets/" + dset112UUID + "/value"
         rsp = requests.get(req, headers=headers)
         self.failUnlessEqual(rsp.status_code, 200)
         rspJson = json.loads(rsp.text)
         data = rspJson['value'] 
         self.assertEqual(len(data), 20)
         for i in range(20):
             self.assertEqual(data[i], i)
     
         # rank 2 dataset
         dset111UUID = helper.getUUID(domain, g11UUID, 'dset1.1.1') 
         req = helper.getEndpoint() + "/datasets/" + dset111UUID
         headers = {'host': domain}
         rsp = requests.get(req, headers=headers)
         self.failUnlessEqual(rsp.status_code, 200)
         rspJson = json.loads(rsp.text)
         self.assertEqual(rspJson['id'], dset111UUID)
         typeItem = rspJson['type']  
         self.assertEqual(typeItem['base'], 'H5T_STD_I32BE')
         shape = rspJson['shape']
         self.assertEqual(shape['class'], 'H5S_SIMPLE')
         self.assertEqual(len(shape['dims']), 2)
         self.assertEqual(shape['dims'][0], 10) 
         self.assertEqual(shape['dims'][1], 10)    
         req = helper.getEndpoint() + "/datasets/" + dset111UUID + "/value"
         rsp = requests.get(req, headers=headers)
         self.failUnlessEqual(rsp.status_code, 200)
         rspJson = json.loads(rsp.text)
         data = rspJson['value'] 
         self.assertEqual(len(data), 10)  
         for i in range(10):
             arr = data[i]
             self.assertEqual(len(arr), 10)
             for j in range(10):
                 self.assertEqual(arr[j], i*j)
Exemple #5
0
 def testGetResizable(self):
     domain = 'resizable.' + config.get('domain')  
     root_uuid = helper.getRootUUID(domain)
     resizable_1d_uuid = helper.getUUID(domain, root_uuid, 'resizable_1d') 
     req = helper.getEndpoint() + "/datasets/" + resizable_1d_uuid + "/shape"
     headers = {'host': domain}
     rsp = requests.get(req, headers=headers)
     self.assertEqual(rsp.status_code, 200)
     rspJson = json.loads(rsp.text)
     self.assertTrue('shape' in rspJson)
     shape = rspJson['shape']
     self.assertEqual(len(shape['dims']), 1)
     self.assertEqual(shape['dims'][0], 10)  
     self.assertEqual(shape['maxdims'][0], 20)  
     
     resizable_2d_uuid = helper.getUUID(domain, root_uuid, 'resizable_2d') 
     req = helper.getEndpoint() + "/datasets/" + resizable_2d_uuid + "/shape"
     headers = {'host': domain}
     rsp = requests.get(req, headers=headers)
     self.assertEqual(rsp.status_code, 200)
     rspJson = json.loads(rsp.text)
     self.assertTrue('shape' in rspJson)
     shape = rspJson['shape']
     self.assertEqual(len(shape['dims']), 2)
     self.assertEqual(shape['dims'][1], 10)  
     self.assertTrue('maxdims'  in shape)  # is re-sizeable!
     self.assertEqual(shape['maxdims'][1], 20)
     
     unlimited_1d_uuid = helper.getUUID(domain, root_uuid, 'unlimited_1d') 
     req = helper.getEndpoint() + "/datasets/" + unlimited_1d_uuid + "/shape"
     headers = {'host': domain}
     rsp = requests.get(req, headers=headers)
     self.assertEqual(rsp.status_code, 200)
     rspJson = json.loads(rsp.text)
     self.assertTrue('shape' in rspJson)
     shape = rspJson['shape']
     self.assertEqual(len(shape['dims']), 1)
     self.assertEqual(shape['dims'][0], 10)  
     self.assertTrue('maxdims' in shape)  # is re-sizeable
     self.assertEqual(shape['maxdims'][0], 0)
     
     unlimited_2d_uuid = helper.getUUID(domain, root_uuid, 'unlimited_2d') 
     req = helper.getEndpoint() + "/datasets/" + unlimited_2d_uuid + "/shape"
     headers = {'host': domain}
     rsp = requests.get(req, headers=headers)
     self.assertEqual(rsp.status_code, 200)
     rspJson = json.loads(rsp.text)
     self.assertTrue('shape' in rspJson)
     shape = rspJson['shape']
     self.assertEqual(len(shape['dims']), 2)
     self.assertEqual(shape['dims'][1], 10)  
     self.assertTrue('maxdims' in shape)  # is re-sizeable
     self.assertEqual(shape['maxdims'][1], 0)
Exemple #6
0
 def testGet(self):
     domain = 'tall.' + config.get('domain')  
     root_uuid = helper.getRootUUID(domain)
     g2_uuid = helper.getUUID(domain, root_uuid, 'g2')
     dset21_uuid = helper.getUUID(domain, g2_uuid, 'dset2.1') 
     req = helper.getEndpoint() + "/datasets/" + dset21_uuid + "/shape"
     headers = {'host': domain}
     rsp = requests.get(req, headers=headers)
     self.failUnlessEqual(rsp.status_code, 200)
     rspJson = json.loads(rsp.text)
     self.assertEqual(rspJson['class'], 'H5S_SIMPLE')
     self.assertEqual(len(rspJson['dims']), 1)
     self.assertEqual(rspJson['dims'][0], 10)  
     self.assertEqual(rspJson['maxdims'][0], 10)
Exemple #7
0
 def testGet(self):
     domain = 'tall.' + config.get('domain')  
     root_uuid = helper.getRootUUID(domain)
     self.assertTrue(helper.validateId(root_uuid))
     g2_uuid = helper.getUUID(domain, root_uuid, 'g2')
     dset21_uuid = helper.getUUID(domain, g2_uuid, 'dset2.1') 
     req = helper.getEndpoint() + "/datasets/" + dset21_uuid + '/type'
     headers = {'host': domain}
     rsp = requests.get(req, headers=headers)
     self.assertEqual(rsp.status_code, 200)
     rspJson = json.loads(rsp.text)
     typeItem = rspJson['type']
     self.assertEqual(typeItem['base'], 'H5T_IEEE_F32BE') 
     self.assertEqual(typeItem['class'], 'H5T_FLOAT') 
Exemple #8
0
 def testQueryBatch(self):
     domain = 'compound.' + config.get('domain')  
     headers = {'host': domain}
     root_uuid = helper.getRootUUID(domain)
     dset_uuid = helper.getUUID(domain, root_uuid, 'dset') 
     req = helper.getEndpoint() + "/datasets/" + dset_uuid + "/value"  
     start = 0
     stop = 72
     count = 0
     count = req_count=0
     limit = 10
     req += "?query=date == 23"     # values where date field = 23
     req += "&Limit=" + str(limit)  # return no more than 10 results at a time
     for i in range(50):
         sreq = req+"&select=[" + str(start) + ":" + str(stop) + "]" 
         rsp = requests.get(sreq, headers=headers)
         self.failUnlessEqual(rsp.status_code, 200)
         req_count += 1
         rspJson = json.loads(rsp.text)
         self.assertTrue('hrefs' in rspJson)
         self.assertTrue('index' in rspJson)
         index = rspJson['index']
         self.assertTrue(len(index) <= limit)
         self.assertTrue('value' in rspJson)
         value = rspJson['value']
         self.assertEqual(len(value), len(index))
         count += len(index)
         if len(index) < limit:
             break  # no more results
         start = index[-1] + 1  # start at next index
     self.assertEqual(count, 24)
     self.assertEqual(req_count, 3)
Exemple #9
0
 def testQueries(self):
     # use '%26' rather than '&' since otherwise it will be 
     # interpreted as a http query param seperator
     queries = { "date == 23": 24,
                 "wind == 'W 5'": 3,
                 "temp > 61": 53,
                 "(date >=22) %26 (date <= 24)": 62,
                 "(date == 21) %26 (temp > 70)": 4,
                 "(wind == 'E 7') | (wind == 'S 7')": 7 }
    
     #queries = {    "(date == 21) %26 (temp >= 72)": 4 }
     domain = 'compound.' + config.get('domain') 
     headers = {'host': domain} 
     root_uuid = helper.getRootUUID(domain)
     dset_uuid = helper.getUUID(domain, root_uuid, 'dset') 
     req = helper.getEndpoint() + "/datasets/" + dset_uuid + "/value"
     for key in queries.keys():
         query = req + "?query=" + key
         rsp = requests.get(query, headers=headers)
         self.failUnlessEqual(rsp.status_code, 200)
         rspJson = json.loads(rsp.text)
         self.assertTrue('hrefs' in rspJson)
         self.assertTrue('index' in rspJson)
         index = rspJson['index']
         self.assertTrue(len(index), queries[key])
         self.assertTrue('value' in rspJson)
         value = rspJson['value']
         self.assertEqual(len(value), queries[key])
Exemple #10
0
 def testGetCompoundCommitted(self):
     domain = 'compound_committed.' + config.get('domain')  
     root_uuid = helper.getRootUUID(domain)
     self.assertTrue(helper.validateId(root_uuid))
     dset_uuid = helper.getUUID(domain, root_uuid, 'dset') 
     req = helper.getEndpoint() + "/datasets/" + dset_uuid
     headers = {'host': domain}
     rsp = requests.get(req, headers=headers)
     self.failUnlessEqual(rsp.status_code, 200)
     rspJson = json.loads(rsp.text)
     shape = rspJson['shape']
     self.assertEqual(shape['class'], 'H5S_SIMPLE')
     self.assertEqual(len(shape['dims']), 1)
     self.assertEqual(shape['dims'][0], 72)  
     typeItem = rspJson['type']   
     self.assertEqual(typeItem['class'], 'H5T_COMPOUND')
     self.assertTrue('fields' in typeItem)
     fields = typeItem['fields']
     self.assertEqual(len(fields), 3)
     timeField = fields[1]
     self.assertEqual(timeField['name'], 'time')
     self.assertTrue('type' in timeField)
     timeFieldType = timeField['type']
     self.assertEqual(timeFieldType['class'], 'H5T_STRING')
     self.assertEqual(timeFieldType['cset'], 'H5T_CSET_ASCII')
     self.assertEqual(timeFieldType['order'], 'H5T_ORDER_NONE')
     self.assertEqual(timeFieldType['strsize'], 6)
     self.assertEqual(timeFieldType['strpad'], 'H5T_STR_NULLPAD')
     tempField = fields[2]
     self.assertEqual(tempField['name'], 'temp')
     tempFieldType = tempField['type']
     self.assertEqual(tempFieldType['class'], 'H5T_INTEGER')
     self.assertEqual(tempFieldType['base'], 'H5T_STD_I32LE')
Exemple #11
0
 def testGetArray(self):
     domain = 'array_attr.' + config.get('domain')  
     root_uuid = helper.getRootUUID(domain)
     self.assertTrue(helper.validateId(root_uuid))
     dset_uuid = helper.getUUID(domain, root_uuid, 'DS1') 
     req = helper.getEndpoint() + "/datasets/" + dset_uuid + "/attributes/A1"
     headers = {'host': domain}
     rsp = requests.get(req, headers=headers)
     self.failUnlessEqual(rsp.status_code, 200)
     rspJson = json.loads(rsp.text)
     shape = rspJson['shape']
     self.assertEqual(shape['class'], 'H5S_SIMPLE')
     self.assertEqual(len(shape['dims']), 1)
     self.assertEqual(shape['dims'][0], 4) 
     typeItem = rspJson['type']    
     self.assertEqual(typeItem['class'], 'H5T_ARRAY')
     self.assertTrue('dims' in typeItem)
     typeShape = typeItem['dims']
     self.assertEqual(len(typeShape), 2)
     self.assertEqual(typeShape[0], 3)
     self.assertEqual(typeShape[1], 5)
     typeBase = typeItem['base']
     self.assertEqual(typeBase['class'], 'H5T_INTEGER')
     self.assertEqual(typeBase['base'], 'H5T_STD_I64LE')
     self.assertTrue('value' in rspJson)
      
     value = rspJson['value']
     self.assertEqual(len(value), 4)   
     elem = value[0] # elem should be a 3x5 array 
     self.assertEqual(len(elem), 3)
     self.assertEqual(elem[2], [0, -2, -4, -6, -8])
Exemple #12
0
 def testGetVlen(self):
     domain = 'vlen_attr.' + config.get('domain')  
     root_uuid = helper.getRootUUID(domain)
     self.assertTrue(helper.validateId(root_uuid))
     dset_uuid = helper.getUUID(domain, root_uuid, 'DS1') 
     req = helper.getEndpoint() + "/datasets/" + dset_uuid + "/attributes/A1"
     headers = {'host': domain}
     rsp = requests.get(req, headers=headers)
     self.failUnlessEqual(rsp.status_code, 200)
     rspJson = json.loads(rsp.text)
     shape = rspJson['shape']
     self.assertEqual(shape['class'], 'H5S_SIMPLE')
     self.assertEqual(len(shape['dims']), 1)
     self.assertEqual(shape['dims'][0], 2)
     typeItem = rspJson['type']
     
     self.assertEqual(typeItem['class'], 'H5T_VLEN')
     baseType = typeItem['base']
     self.assertEqual(baseType['class'], 'H5T_INTEGER')
     self.assertEqual(baseType['base'], 'H5T_STD_I32LE')
     #verify data returned
     value = rspJson['value']
     self.assertEqual(len(value), 2)
     self.assertEqual(len(value[1]), 12)
     self.assertEqual(value[1][11], 144)
Exemple #13
0
 def testGetCompoundArray(self):
     for domain_name in ('compound_array_attr', ):
         domain = domain_name + '.' + config.get('domain') 
         root_uuid = helper.getRootUUID(domain)
         dset_uuid = helper.getUUID(domain, root_uuid, 'DS1') 
         req = helper.getEndpoint() + "/datasets/" + dset_uuid + "/attributes/A1"
         headers = {'host': domain}
         rsp = requests.get(req, headers=headers)
         self.failUnlessEqual(rsp.status_code, 200)
         rspJson = json.loads(rsp.text)
         self.assertEqual(rspJson['name'], 'A1')
         shape = rspJson['shape']
         self.assertEqual(shape['class'], 'H5S_SCALAR')
         typeItem = rspJson['type']
         self.assertEqual(typeItem['class'], 'H5T_COMPOUND')
         self.assertEqual(len(typeItem['fields']), 2)
         fields = typeItem['fields']
         field0 = fields[0]
         self.assertEqual(field0['name'], 'temp')
         field0Type = field0['type']
         self.assertEqual(field0Type['class'], 'H5T_FLOAT')
         self.assertEqual(field0Type['base'], 'H5T_IEEE_F64LE')
         field1 = fields[1]
         self.assertEqual(field1['name'], '2x2')
         field1Type = field1['type']
         self.assertEqual(field1Type['class'], 'H5T_ARRAY')
         self.assertEqual(field1Type['dims'], [2, 2])
         baseType = field1Type['base']
         self.assertEqual(baseType['class'], 'H5T_FLOAT')
         self.assertEqual(baseType['base'], 'H5T_IEEE_F32LE')
Exemple #14
0
 def testGetArray(self):
     domain = 'array_dset.' + config.get('domain')  
     root_uuid = helper.getRootUUID(domain)
     self.assertTrue(helper.validateId(root_uuid))
     dset_uuid = helper.getUUID(domain, root_uuid, 'DS1') 
     req = helper.getEndpoint() + "/datasets/" + dset_uuid
     headers = {'host': domain}
     rsp = requests.get(req, headers=headers)
     self.failUnlessEqual(rsp.status_code, 200)
     rspJson = json.loads(rsp.text)
     shape = rspJson['shape']
     self.assertEqual(shape['class'], 'H5S_SIMPLE')
     self.assertEqual(len(shape['dims']), 1)
     self.assertEqual(shape['dims'][0], 4)   
     typeItem = rspJson['type']
     
     self.assertEqual(typeItem['class'], 'H5T_ARRAY')
     self.assertTrue('dims' in typeItem)
     typeShape = typeItem['dims']
     self.assertEqual(len(typeShape), 2)
     self.assertEqual(typeShape[0], 3)
     self.assertEqual(typeShape[1], 5)
     typeItemBase = typeItem['base']
     self.assertEqual(typeItemBase['class'], 'H5T_INTEGER')
     self.assertEqual(typeItemBase['base'], 'H5T_STD_I64LE')
Exemple #15
0
 def testGetArray(self):
     domain = 'array_attr.' + config.get('domain')  
     root_uuid = helper.getRootUUID(domain)
     self.assertTrue(helper.validateId(root_uuid))
     dset_uuid = helper.getUUID(domain, root_uuid, 'DS1') 
     req = helper.getEndpoint() + "/datasets/" + dset_uuid + "/attributes/A1"
     headers = {'host': domain}
     rsp = requests.get(req, headers=headers)
     self.failUnlessEqual(rsp.status_code, 200)
     rspJson = json.loads(rsp.text)
     shape = rspJson['shape']
     self.assertEqual(shape['class'], 'H5S_SIMPLE')
     self.assertEqual(len(shape['dims']), 1)
     self.assertEqual(shape['dims'][0], 4) 
     typeItem = rspJson['type']    
     self.assertEqual(typeItem['class'], 'H5T_ARRAY')
     self.assertTrue('dims' in typeItem)
     typeShape = typeItem['dims']
     self.assertEqual(len(typeShape), 2)
     self.assertEqual(typeShape[0], 3)
     self.assertEqual(typeShape[1], 5)
     typeBase = typeItem['base']
     self.assertEqual(typeBase['class'], 'H5T_INTEGER')
     self.assertEqual(typeBase['base'], 'H5T_STD_I64LE')
     # bug! - unable to read value from attribute with array type
     # code is not returning 'value' key in this case
     # h5py issue: https://github.com/h5py/h5py/issues/498 
     if 'value' in rspJson:
         print 'remove above if check once h5py 2.4 is released'
         self.assertTrue('value' in rspJson)
         value = rspJson['value']
         self.assertEqual(len(value), 4)
         elem = value[0] # elem should be a 3x5 array 
         self.assertEqual(elem[2], [0, -2, -4, -6, -8])
Exemple #16
0
 def testGetFixedString(self):
     domain = 'fixed_string_attr.' + config.get('domain')  
     root_uuid = helper.getRootUUID(domain)
     self.assertTrue(helper.validateId(root_uuid))
     dset_uuid = helper.getUUID(domain, root_uuid, 'DS1') 
     req = helper.getEndpoint() + "/datasets/" + dset_uuid + "/attributes/A1"
     headers = {'host': domain}
     rsp = requests.get(req, headers=headers)
     self.failUnlessEqual(rsp.status_code, 200)
     rspJson = json.loads(rsp.text)
     shape = rspJson['shape']
     self.assertEqual(shape['class'], 'H5S_SIMPLE')
     self.assertEqual(len(shape['dims']), 1)
     self.assertEqual(shape['dims'][0], 4)  
     typeItem = rspJson['type']
     
     self.assertEqual(typeItem['class'], 'H5T_STRING')
     self.assertEqual(typeItem['cset'], 'H5T_CSET_ASCII')
     self.assertEqual(typeItem['order'], 'H5T_ORDER_NONE')
     self.assertEqual(typeItem['strsize'], 7)
     self.assertEqual(typeItem['strpad'], 'H5T_STR_NULLPAD')
     self.assertTrue('value' in rspJson)
     value = rspJson['value']
     self.assertEqual(len(value), 4) 
     self.assertEqual(value[0], "Parting")
     self.assertEqual(value[1], "is such")
     self.assertEqual(value[2], "sweet")
     self.assertEqual(value[3], "sorrow.")
Exemple #17
0
 def testGetEnum(self):
     domain = 'enum_dset.' + config.get('domain')  
     root_uuid = helper.getRootUUID(domain)
     self.assertTrue(helper.validateId(root_uuid))
     dset_uuid = helper.getUUID(domain, root_uuid, 'DS1') 
     req = helper.getEndpoint() + "/datasets/" + dset_uuid
     headers = {'host': domain}
     rsp = requests.get(req, headers=headers)
     self.failUnlessEqual(rsp.status_code, 200)
     rspJson = json.loads(rsp.text)
     shape = rspJson['shape']
     self.assertEqual(shape['class'], 'H5S_SIMPLE')
     self.assertEqual(len(shape['dims']), 2)
     self.assertEqual(shape['dims'][0], 4)  
     self.assertEqual(shape['dims'][1], 7)
     typeItem = rspJson['type']
     
     self.assertEqual(typeItem['class'], 'H5T_ENUM')
     typeBase = typeItem['base']
     self.assertEqual(typeBase['class'], 'H5T_INTEGER')
     self.assertEqual(typeBase['base'], 'H5T_STD_I16BE')
     self.assertTrue('mapping' in typeItem)
     mapping = typeItem['mapping']
     self.assertEqual(len(mapping), 4)
     self.assertEqual(mapping['SOLID'], 0)
     self.assertEqual(mapping['LIQUID'], 1)
     self.assertEqual(mapping['GAS'], 2)
     self.assertEqual(mapping['PLASMA'], 3)
Exemple #18
0
 def testGetRegionReference(self):
     domain = 'regionref_attr.' + config.get('domain')  
     root_uuid = helper.getRootUUID(domain)
     self.assertTrue(helper.validateId(root_uuid))
     ds1_uuid = helper.getUUID(domain, root_uuid, 'DS1') 
     ds2_uuid = helper.getUUID(domain, root_uuid, 'DS2') 
     req = helper.getEndpoint() + "/datasets/" + ds1_uuid + "/attributes/A1"
     headers = {'host': domain}
     rsp = requests.get(req, headers=headers)
     self.failUnlessEqual(rsp.status_code, 200)
     rspJson = json.loads(rsp.text)
     shape = rspJson['shape']
     self.assertEqual(shape['class'], 'H5S_SIMPLE')
     self.assertEqual(len(shape['dims']), 1)
     self.assertEqual(shape['dims'][0], 2) 
     typeItem = rspJson['type']     
     self.assertEqual(typeItem['class'], 'H5T_REFERENCE')
     self.assertEqual(typeItem['base'], 'H5T_STD_REF_DSETREG')
     self.assertTrue('value' in rspJson)
     value = rspJson['value']
     self.assertEqual(len(value), 2)
     value = rspJson['value']
     self.assertEqual(len(value), 2)
     ref0 = value[0]
     self.assertEqual(ref0['select_type'], 'H5S_SEL_POINTS')
     self.assertEqual(ref0['id'], ds2_uuid)
     points = ref0['selection']
     self.assertEqual(len(points), 4)
     self.assertEqual(points[0], [0, 1])
     self.assertEqual(points[1], [2,11])
     self.assertEqual(points[2], [1, 0])
     self.assertEqual(points[3], [2, 4])
     
     ref1 = value[1]
     self.assertEqual(ref1['select_type'], 'H5S_SEL_HYPERSLABS')
     self.assertEqual(ref1['id'], ds2_uuid)
     hyperslabs = ref1['selection'] 
     self.assertEqual(len(hyperslabs), 4)
     self.assertEqual(hyperslabs[0][0], [0, 0])
     self.assertEqual(hyperslabs[0][1], [0, 2])
     self.assertEqual(hyperslabs[1][0], [0, 11])
     self.assertEqual(hyperslabs[1][1], [0, 13])
     self.assertEqual(hyperslabs[2][0], [2, 0])
     self.assertEqual(hyperslabs[2][1], [2, 2])
     self.assertEqual(hyperslabs[3][0], [2, 11])
     self.assertEqual(hyperslabs[3][1], [2, 13])
Exemple #19
0
 def testBadQuery(self):
     domain = 'compound.' + config.get('domain')  
     root_uuid = helper.getRootUUID(domain)
     dset_uuid = helper.getUUID(domain, root_uuid, 'dset') 
     req = helper.getEndpoint() + "/datasets/" + dset_uuid + "/value"
     req += "?query=foobar"  
     headers = {'host': domain}
     rsp = requests.get(req, headers=headers)
     self.failUnlessEqual(rsp.status_code, 400)
Exemple #20
0
    def testPutObjectReference(self):
        domain = 'objref_dset_updated.' + config.get('domain')  
        root_uuid = helper.getRootUUID(domain)
        self.assertTrue(helper.validateId(root_uuid))
        ds1_uuid = helper.getUUID(domain, root_uuid, 'DS1') 
        ds2_uuid = helper.getUUID(domain, root_uuid, 'DS2') 
        g1_uuid = helper.getUUID(domain, root_uuid, 'G1') 
        req = helper.getEndpoint() + "/datasets/" + ds1_uuid  + "/value"
        headers = {'host': domain}
        rsp = requests.get(req, headers=headers)
        self.failUnlessEqual(rsp.status_code, 200)
        rspJson = json.loads(rsp.text)

        value = ('datasets/' + ds2_uuid, 'groups/' + g1_uuid)
        payload = {'value': value}
        req = self.endpoint + "/datasets/" + ds1_uuid + "/value"
        rsp = requests.put(req, data=json.dumps(payload), headers=headers)
        self.failUnlessEqual(rsp.status_code, 200)  # write value
Exemple #21
0
 def testPutObjReference(self):
     domain = 'tall_updated.' + config.get('domain')
     attr_name = 'attr9'
     root_uuid = helper.getRootUUID(domain)
     g2_uuid = helper.getUUID(domain, root_uuid, 'g2') 
     d22_uuid = helper.getUUID(domain, g2_uuid, 'dset2.2') 
     
     headers = {'host': domain}
      
     datatype = {'class': 'H5T_REFERENCE', 'base': 'H5T_STD_REF_OBJ' }
     
     value = ('groups/' + g2_uuid, '', 'datasets/' + d22_uuid) 
     payload = {'type': datatype, 'shape': 3, 'value': value}
     req = self.endpoint + "/groups/" + root_uuid + "/attributes/" + attr_name
     rsp = requests.put(req, data=json.dumps(payload), headers=headers)
     self.failUnlessEqual(rsp.status_code, 201)  # create attribute
     rspJson = json.loads(rsp.text)
     self.assertEqual(len(rspJson['hrefs']), 3)
Exemple #22
0
 def testGetObjectReference(self):
     domain = 'objref_dset.' + config.get('domain')  
     root_uuid = helper.getRootUUID(domain)
     self.assertTrue(helper.validateId(root_uuid))
     ds1_uuid = helper.getUUID(domain, root_uuid, 'DS1') 
     ds2_uuid = helper.getUUID(domain, root_uuid, 'DS2') 
     g1_uuid = helper.getUUID(domain, root_uuid, 'G1') 
     req = helper.getEndpoint() + "/datasets/" + ds1_uuid  + "/value"
     headers = {'host': domain}
     rsp = requests.get(req, headers=headers)
     self.failUnlessEqual(rsp.status_code, 200)
     rspJson = json.loads(rsp.text)
      
     self.assertTrue('value' in rspJson)
     value = rspJson['value']
     self.assertEqual(len(value), 2)
     self.assertEqual(value[0], '/groups/' + g1_uuid)
     self.assertEqual(value[1], '/datasets/' + ds2_uuid)
Exemple #23
0
 def testGetOpaque(self):
     domain = 'opaque_dset.' + config.get('domain')  
     root_uuid = helper.getRootUUID(domain)
     self.assertTrue(helper.validateId(root_uuid))
     dset_uuid = helper.getUUID(domain, root_uuid, 'DS1') 
     req = helper.getEndpoint() + "/datasets/" + dset_uuid + "/value"
     headers = {'host': domain}
     rsp = requests.get(req, headers=headers)
     # get for Opaque data is not supported yet.  Check that the call returns 501
     self.failUnlessEqual(rsp.status_code, 501)
Exemple #24
0
 def testGetOpaque(self):
     domain = 'opaque_dset.' + config.get('domain')
     root_uuid = helper.getRootUUID(domain)
     self.assertTrue(helper.validateId(root_uuid))
     dset_uuid = helper.getUUID(domain, root_uuid, 'DS1')
     req = helper.getEndpoint() + "/datasets/" + dset_uuid + "/value"
     headers = {'host': domain}
     rsp = requests.get(req, headers=headers)
     # get for Opaque data is not supported yet.  Check that the call returns 501
     self.failUnlessEqual(rsp.status_code, 501)
Exemple #25
0
 def testGetExternal(self):
     logging.info("LinkTest.testGetExternal")
     for domain_name in ('tall', 'tall_ro'):
         g1_uuid = None
         domain = domain_name + '.' + config.get('domain')   
         root_uuid = helper.getRootUUID(domain)
         g1_uuid = helper.getUUID(domain, root_uuid, 'g1')
         g12_uuid = helper.getUUID(domain, g1_uuid, 'g1.2')
         req = self.endpoint + "/groups/" + g12_uuid + "/links/extlink"
         headers = {'host': domain}
         rsp = requests.get(req, headers=headers)
         self.failUnlessEqual(rsp.status_code, 200)
         rspJson = json.loads(rsp.text)
         target = rspJson['href']
         self.failUnlessEqual(target, "http://somefile/#h5path(somepath)")
         self.assertTrue("created" in rspJson)
         self.assertTrue("lastModified" in rspJson)
         self.failUnlessEqual(rspJson['class'], 'external')
         self.failUnlessEqual(rspJson['title'], 'extlink')
Exemple #26
0
 def testDelete(self):
     domain = 'tall_dset112_deleted.' + config.get('domain')  
     root_uuid = helper.getRootUUID(domain)
     self.assertTrue(helper.validateId(root_uuid))
     g1_uuid = helper.getUUID(domain, root_uuid, 'g1')
     self.assertTrue(helper.validateId(g1_uuid))
     g11_uuid = helper.getUUID(domain, g1_uuid, 'g1.1')
     self.assertTrue(helper.validateId(g11_uuid))
     d112_uuid = helper.getUUID(domain, g11_uuid, 'dset1.1.2')
     self.assertTrue(helper.validateId(d112_uuid))
     req = self.endpoint + "/datasets/" + d112_uuid
     headers = {'host': domain}
     rsp = requests.delete(req, headers=headers)
     self.failUnlessEqual(rsp.status_code, 200)
     # verify that a GET on the dataset fails
     req = helper.getEndpoint() + "/datasets/" + d112_uuid
     headers = {'host': domain}
     rsp = requests.get(req, headers=headers)
     self.failUnlessEqual(rsp.status_code, 410)
Exemple #27
0
 def testDelete(self):
     domain = 'tall_dset112_deleted.' + config.get('domain')
     root_uuid = helper.getRootUUID(domain)
     self.assertTrue(helper.validateId(root_uuid))
     g1_uuid = helper.getUUID(domain, root_uuid, 'g1')
     self.assertTrue(helper.validateId(g1_uuid))
     g11_uuid = helper.getUUID(domain, g1_uuid, 'g1.1')
     self.assertTrue(helper.validateId(g11_uuid))
     d112_uuid = helper.getUUID(domain, g11_uuid, 'dset1.1.2')
     self.assertTrue(helper.validateId(d112_uuid))
     req = self.endpoint + "/datasets/" + d112_uuid
     headers = {'host': domain}
     rsp = requests.delete(req, headers=headers)
     self.failUnlessEqual(rsp.status_code, 200)
     # verify that a GET on the dataset fails
     req = helper.getEndpoint() + "/datasets/" + d112_uuid
     headers = {'host': domain}
     rsp = requests.get(req, headers=headers)
     self.failUnlessEqual(rsp.status_code, 410)
Exemple #28
0
 def testGetLinks(self):
     logging.info("LinkTest.testGetLinks")
     for domain_name in ('tall', 'tall_ro'):
         g1_uuid = None
         domain = domain_name + '.' + config.get('domain')
         root_uuid = helper.getRootUUID(domain)
         g1_uuid = helper.getUUID(domain, root_uuid, 'g1')
         g12_uuid = helper.getUUID(domain, g1_uuid, 'g1.2')
         req = self.endpoint + "/groups/" + g12_uuid + "/links"
         headers = {'host': domain}
         rsp = requests.get(req, headers=headers)
         self.failUnlessEqual(rsp.status_code, 200)
         rspJson = json.loads(rsp.text)
         self.assertTrue("links" in rspJson)
         links = rspJson["links"]
         self.assertEqual(len(links), 2)
         for link in links:
             self.assertTrue("title" in link)
             self.assertTrue("class" in link)
Exemple #29
0
 def testGetLinks(self):
     logging.info("LinkTest.testGetLinks")
     for domain_name in ('tall', 'tall_ro'):
         g1_uuid = None
         domain = domain_name + '.' + config.get('domain')   
         root_uuid = helper.getRootUUID(domain) 
         g1_uuid = helper.getUUID(domain, root_uuid, 'g1')
         g12_uuid = helper.getUUID(domain, g1_uuid, 'g1.2')    
         req = self.endpoint + "/groups/" + g12_uuid + "/links"
         headers = {'host': domain}
         rsp = requests.get(req, headers=headers)
         self.failUnlessEqual(rsp.status_code, 200)
         rspJson = json.loads(rsp.text)
         self.assertTrue("links" in rspJson)
         links = rspJson["links"]
         self.assertEqual(len(links), 2)
         for link in links:
             self.assertTrue("title" in link)
             self.assertTrue("class" in link)
Exemple #30
0
 def testGetSoft(self):
     logging.info("LinkTest.testGetSoft")
     for domain_name in ('tall', 'tall_ro'):
         g1_uuid = None
         domain = domain_name + '.' + config.get('domain')
         root_uuid = helper.getRootUUID(domain)
         g1_uuid = helper.getUUID(domain, root_uuid, 'g1')
         g12_uuid = helper.getUUID(domain, g1_uuid, 'g1.2')
         g121_uuid = helper.getUUID(domain, g12_uuid, 'g1.2.1')
         req = self.endpoint + "/groups/" + g121_uuid + "/links/slink"
         headers = {'host': domain}
         rsp = requests.get(req, headers=headers)
         self.failUnlessEqual(rsp.status_code, 200)
         rspJson = json.loads(rsp.text)
         target = rspJson['href']
         self.failUnlessEqual(target, '/#h5path(somevalue)')
         self.assertTrue("created" in rspJson)
         self.assertTrue("lastModified" in rspJson)
         self.failUnlessEqual(rspJson['class'], 'soft')
         self.failUnlessEqual(rspJson['title'], 'slink')
Exemple #31
0
    def testPutRegionReference(self):
        domain = 'regionref_dset_updated.' + config.get('domain')
        root_uuid = helper.getRootUUID(domain)
        ds1_uuid = helper.getUUID(domain, root_uuid, 'DS1')
        ds2_uuid = helper.getUUID(domain, root_uuid, 'DS2')

        req = helper.getEndpoint() + "/datasets/" + ds1_uuid + "/value"
        headers = {'host': domain}
        rsp = requests.get(req, headers=headers)
        self.failUnlessEqual(rsp.status_code, 200)
        rspJson = json.loads(rsp.text)
        self.assertTrue('value' in rspJson)
        value = rspJson['value']
        self.failUnlessEqual(len(value), 2)

        updated_value = (value[1], value[0])  # switch elements
        payload = {'value': updated_value}

        rsp = requests.put(req, data=json.dumps(payload), headers=headers)
        self.failUnlessEqual(rsp.status_code, 200)  # write value
Exemple #32
0
 def testGetCommitted(self):
     domain = 'committed_type.' + config.get('domain')  
     root_uuid = helper.getRootUUID(domain)
     self.assertTrue(helper.validateId(root_uuid))
     dset_uuid = helper.getUUID(domain, root_uuid, 'DS1') 
     req = helper.getEndpoint() + "/datasets/" + dset_uuid + "/value"
     headers = {'host': domain}
     rsp = requests.get(req, headers=headers)
     self.failUnlessEqual(rsp.status_code, 200)
     rspJson = json.loads(rsp.text)
     data = rspJson['value'] 
     self.failUnlessEqual(len(data), 4)
Exemple #33
0
 def testGetSimpleOneElementString(self):
     domain = 'scalar.' + config.get('domain') 
     headers = {'host': domain} 
     root_uuid = helper.getRootUUID(domain)
     self.assertTrue(helper.validateId(root_uuid))
     dset_uuid = helper.getUUID(domain, root_uuid, '1ds') 
     req = helper.getEndpoint() + "/datasets/" + dset_uuid + "/value"
     rsp = requests.get(req, headers=headers)
     self.failUnlessEqual(rsp.status_code, 200)
     rspJson = json.loads(rsp.text)
     data = rspJson['value'] 
     self.assertEqual(data, ["hello",])
Exemple #34
0
 def testGetSelectionBadQuery(self):
     domain = 'tall.' + config.get('domain')  
     headers = {'host': domain}
     rootUUID = helper.getRootUUID(domain)
     g1UUID = helper.getUUID(domain, rootUUID, 'g1')
     g11UUID = helper.getUUID(domain, g1UUID, 'g1.1')
            
     # rank 1 dataset
     dset112UUID = helper.getUUID(domain, g11UUID, 'dset1.1.2') 
      
     # pass in non-numeric start
     req = helper.getEndpoint() + "/datasets/" + dset112UUID + "/value" + \
          "?dim1_start=abc"
     rsp = requests.get(req, headers=headers)
     self.failUnlessEqual(rsp.status_code, 400)
     
     # pass in 0 step
     req = helper.getEndpoint() + "/datasets/" + dset112UUID + "/value" + \
          "?dim1_start=2&dim1_step=0"
     rsp = requests.get(req, headers=headers)
     self.failUnlessEqual(rsp.status_code, 400)  
Exemple #35
0
    def testGetSelectionBadQuery(self):
        domain = 'tall.' + config.get('domain')
        headers = {'host': domain}
        rootUUID = helper.getRootUUID(domain)
        g1UUID = helper.getUUID(domain, rootUUID, 'g1')
        g11UUID = helper.getUUID(domain, g1UUID, 'g1.1')

        # rank 1 dataset
        dset112UUID = helper.getUUID(domain, g11UUID, 'dset1.1.2')

        # pass in non-numeric start
        req = helper.getEndpoint() + "/datasets/" + dset112UUID + "/value" + \
             "?dim1_start=abc"
        rsp = requests.get(req, headers=headers)
        self.failUnlessEqual(rsp.status_code, 400)

        # pass in 0 step
        req = helper.getEndpoint() + "/datasets/" + dset112UUID + "/value" + \
             "?dim1_start=2&dim1_step=0"
        rsp = requests.get(req, headers=headers)
        self.failUnlessEqual(rsp.status_code, 400)
Exemple #36
0
 def testGetScalarString(self):
     domain = 'scalar.' + config.get('domain')
     headers = {'host': domain}
     root_uuid = helper.getRootUUID(domain)
     self.assertTrue(helper.validateId(root_uuid))
     dset_uuid = helper.getUUID(domain, root_uuid, '0ds')
     req = helper.getEndpoint() + "/datasets/" + dset_uuid + "/value"
     rsp = requests.get(req, headers=headers)
     self.failUnlessEqual(rsp.status_code, 200)
     rspJson = json.loads(rsp.text)
     data = rspJson['value']
     self.assertEqual(data, "hello")
Exemple #37
0
 def testGet(self):
     domain = 'tall.' + config.get('domain')
     root_uuid = helper.getRootUUID(domain)
     self.assertTrue(helper.validateId(root_uuid))
     g2_uuid = helper.getUUID(domain, root_uuid, 'g2')
     dset21_uuid = helper.getUUID(domain, g2_uuid, 'dset2.1')
     req = helper.getEndpoint() + "/datasets/" + dset21_uuid
     headers = {'host': domain}
     rsp = requests.get(req, headers=headers)
     self.failUnlessEqual(rsp.status_code, 200)
     rspJson = json.loads(rsp.text)
     self.assertTrue('type' in rspJson)
     type = rspJson['type']
     self.assertEqual(type['class'], 'H5T_FLOAT')
     self.assertEqual(type['base'], 'H5T_IEEE_F32BE')
     self.assertTrue('shape' in rspJson)
     shape = rspJson['shape']
     self.assertEqual(shape['class'], 'H5S_SIMPLE')
     self.assertEqual(len(shape['dims']), 1)
     self.assertEqual(shape['dims'][0], 10)
     self.assertEqual(shape['maxdims'][0], 10)
Exemple #38
0
 def testGet(self):
     domain = 'tall.' + config.get('domain')  
     root_uuid = helper.getRootUUID(domain)
     self.assertTrue(helper.validateId(root_uuid))
     g2_uuid = helper.getUUID(domain, root_uuid, 'g2')
     dset21_uuid = helper.getUUID(domain, g2_uuid, 'dset2.1') 
     req = helper.getEndpoint() + "/datasets/" + dset21_uuid
     headers = {'host': domain}
     rsp = requests.get(req, headers=headers)
     self.failUnlessEqual(rsp.status_code, 200)
     rspJson = json.loads(rsp.text)
     self.assertTrue('type' in rspJson)
     type = rspJson['type']
     self.assertEqual(type['class'], 'H5T_FLOAT')
     self.assertEqual(type['base'], 'H5T_IEEE_F32BE')
     self.assertTrue('shape' in rspJson)
     shape = rspJson['shape']
     self.assertEqual(shape['class'], 'H5S_SIMPLE')
     self.assertEqual(len(shape['dims']), 1)
     self.assertEqual(shape['dims'][0], 10)  
     self.assertEqual(shape['maxdims'][0], 10)
Exemple #39
0
 def testGetCommitted(self):
     domain = 'committed_type.' + config.get('domain')
     root_uuid = helper.getRootUUID(domain)
     self.assertTrue(helper.validateId(root_uuid))
     dset_uuid = helper.getUUID(domain, root_uuid, 'DS1')
     req = helper.getEndpoint() + "/datasets/" + dset_uuid + "/value"
     headers = {'host': domain}
     rsp = requests.get(req, headers=headers)
     self.failUnlessEqual(rsp.status_code, 200)
     rspJson = json.loads(rsp.text)
     data = rspJson['value']
     self.failUnlessEqual(len(data), 4)
Exemple #40
0
    def testPutRegionReference(self):
        domain = 'tall_updated.' + config.get('domain')
        attr_name = 'attr10'
        root_uuid = helper.getRootUUID(domain)
        g1_uuid = helper.getUUID(domain, root_uuid, 'g1')
        g11_uuid = helper.getUUID(domain, g1_uuid, 'g1.1')
        d111_uuid = helper.getUUID(domain, g11_uuid, 'dset1.1.1')

        headers = {'host': domain}

        datatype = {'class': 'H5T_REFERENCE', 'base': 'H5T_STD_REF_DSETREG'}

        region_ref = {}
        region_ref['id'] = d111_uuid
        region_ref['select_type'] = 'H5S_SEL_HYPERSLABS'
        region_ref['selection'] = (((0, 0), (1, 1)), ((2, 2), (4, 4)),
                                   ((5, 5), (10, 10)))

        point_ref = {}
        point_ref['id'] = d111_uuid
        point_ref['select_type'] = 'H5S_SEL_POINTS'
        point_ref['selection'] = ((0, 0), (1, 1), (2, 2), (3, 3), (4, 4),
                                  (5, 5), (6, 6), (7, 7), (8, 8), (9, 9))

        all_ref = {}
        all_ref['id'] = d111_uuid
        all_ref['select_type'] = 'H5S_SEL_ALL'

        none_ref = {}
        none_ref['id'] = d111_uuid
        none_ref['select_type'] = 'H5S_SEL_NONE'

        value = (region_ref, point_ref, all_ref, none_ref)

        payload = {'type': datatype, 'shape': 4, 'value': value}
        req = self.endpoint + "/groups/" + root_uuid + "/attributes/" + attr_name
        rsp = requests.put(req, data=json.dumps(payload), headers=headers)
        self.failUnlessEqual(rsp.status_code, 201)  # create attribute
        rspJson = json.loads(rsp.text)
        self.assertEqual(len(rspJson['hrefs']), 3)
Exemple #41
0
 def testPutInvalidShape(self):
     domain = 'resized.' + config.get('domain')
     headers = {'host': domain}
     root_uuid = helper.getRootUUID(domain)
     resizable_1d_uuid = helper.getUUID(domain, root_uuid, 'resizable_1d') 
     req = helper.getEndpoint() + "/datasets/" + resizable_1d_uuid + "/shape"
     payload = { 'shape': [20, 10] }  # wrong rank
     headers = {'host': domain}
     rsp = requests.put(req, data=json.dumps(payload), headers=headers)
     self.failUnlessEqual(rsp.status_code, 400)
     
     payload = { 'shape': 8 }  # try to shrink
     headers = {'host': domain}
     rsp = requests.put(req, data=json.dumps(payload), headers=headers)
     self.failUnlessEqual(rsp.status_code, 400)        
               
     resizable_2d_uuid = helper.getUUID(domain, root_uuid, 'resizable_2d') 
     req = helper.getEndpoint() + "/datasets/" + resizable_2d_uuid + "/shape"
     payload = { 'shape': [12, 20] }  # try to extend non-extendable dimension
     headers = {'host': domain}
     rsp = requests.put(req, data=json.dumps(payload), headers=headers)
     self.failUnlessEqual(rsp.status_code, 400)
Exemple #42
0
 def testGetNullSpace(self):
     domain = 'null_space_dset.' + config.get('domain')
     root_uuid = helper.getRootUUID(domain)
     self.assertTrue(helper.validateId(root_uuid))
     dset_uuid = helper.getUUID(domain, root_uuid, 'DS1')
     req = helper.getEndpoint() + "/datasets/" + dset_uuid + "/value"
     headers = {'host': domain}
     rsp = requests.get(req, headers=headers)
     self.failUnlessEqual(rsp.status_code, 200)
     rspJson = json.loads(rsp.text)
     self.assertTrue('value' in rspJson)
     data = rspJson['value']
     self.assertEqual(data, None)
Exemple #43
0
    def testGetSelectionBadQuery(self):
        domain = 'tall.' + config.get('domain')
        headers = {'host': domain}
        rootUUID = helper.getRootUUID(domain)
        g1UUID = helper.getUUID(domain, rootUUID, 'g1')
        g11UUID = helper.getUUID(domain, g1UUID, 'g1.1')

        # rank 1 dataset
        dset112UUID = helper.getUUID(domain, g11UUID, 'dset1.1.2')

        # don't use  bracket
        req = helper.getEndpoint() + "/datasets/" + dset112UUID + "/value" + \
             "?select=abc"
        rsp = requests.get(req, headers=headers)
        self.failUnlessEqual(rsp.status_code, 400)

        # not a number
        req = helper.getEndpoint() + "/datasets/" + dset112UUID + "/value" + \
             "?select=[a:b:c]"
        rsp = requests.get(req, headers=headers)
        self.failUnlessEqual(rsp.status_code, 400)

        # start is negative
        req = helper.getEndpoint() + "/datasets/" + dset112UUID + "/value" + \
             "?select=[-1:3]"
        rsp = requests.get(req, headers=headers)
        self.failUnlessEqual(rsp.status_code, 400)

        # stop past extent
        req = helper.getEndpoint() + "/datasets/" + dset112UUID + "/value" + \
             "?select=[1:25]"
        rsp = requests.get(req, headers=headers)
        self.failUnlessEqual(rsp.status_code, 400)

        # pass in 0 step
        req = helper.getEndpoint() + "/datasets/" + dset112UUID + "/value" + \
             "?select=[1:2:0]"
        rsp = requests.get(req, headers=headers)
        self.failUnlessEqual(rsp.status_code, 400)
Exemple #44
0
 def testGetScalar(self):
     domain = 'scalar.' + config.get('domain')
     root_uuid = helper.getRootUUID(domain)
     self.assertTrue(helper.validateId(root_uuid))
     dset_uuid = helper.getUUID(domain, root_uuid, '0d')
     req = helper.getEndpoint() + "/datasets/" + dset_uuid + '/type'
     headers = {'host': domain}
     rsp = requests.get(req, headers=headers)
     self.failUnlessEqual(rsp.status_code, 200)
     rspJson = json.loads(rsp.text)
     typeItem = rspJson['type']
     self.assertEqual(typeItem['base'], 'H5T_STD_I32LE')
     self.assertEqual(typeItem['class'], 'H5T_INTEGER')
Exemple #45
0
    def testGetCompoundArray(self):
        # compound where the fields are array type
        domain = 'tstr.' + config.get('domain')
        root_uuid = helper.getRootUUID(domain)
        self.assertTrue(helper.validateId(root_uuid))
        dset_uuid = helper.getUUID(domain, root_uuid, 'comp1')
        req = helper.getEndpoint() + "/datasets/" + dset_uuid
        headers = {'host': domain}
        rsp = requests.get(req, headers=headers)
        self.failUnlessEqual(rsp.status_code, 200)
        rspJson = json.loads(rsp.text)
        shape = rspJson['shape']
        self.assertEqual(shape['class'], 'H5S_SIMPLE')
        self.assertEqual(len(shape['dims']), 2)
        self.assertEqual(shape['dims'][0], 3)
        self.assertEqual(shape['dims'][1], 6)
        typeItem = rspJson['type']
        self.assertEqual(typeItem['class'], 'H5T_COMPOUND')
        self.assertTrue('fields' in typeItem)
        fields = typeItem['fields']
        self.assertEqual(len(fields), 2)
        intField = fields[0]
        self.assertEqual(intField['name'], 'int_array')
        self.assertTrue('type' in intField)
        intFieldType = intField['type']
        self.assertEqual(intFieldType['class'], 'H5T_ARRAY')
        intFieldTypeDims = intFieldType['dims']
        self.assertEqual(len(intFieldTypeDims), 2)
        self.assertEqual(intFieldTypeDims[0], 8)
        self.assertEqual(intFieldTypeDims[1], 10)
        self.assertTrue('base' in intFieldType)
        intFieldTypeBase = intFieldType['base']
        self.assertEqual(intFieldTypeBase['class'], 'H5T_INTEGER')
        self.assertEqual(intFieldTypeBase['base'], 'H5T_STD_I32BE')

        strField = fields[1]
        self.assertEqual(strField['name'], 'string')
        self.assertTrue('type' in strField)
        strFieldType = strField['type']
        self.assertEqual(strFieldType['class'], 'H5T_ARRAY')
        strFieldTypeDims = strFieldType['dims']
        self.assertEqual(len(strFieldTypeDims), 2)
        self.assertEqual(strFieldTypeDims[0], 3)
        self.assertEqual(strFieldTypeDims[1], 4)
        self.assertTrue('base' in strFieldType)
        strFieldTypeBase = strFieldType['base']

        self.assertEqual(strFieldTypeBase['class'], 'H5T_STRING')
        self.assertEqual(strFieldTypeBase['cset'], 'H5T_CSET_ASCII')
        self.assertEqual(strFieldTypeBase['order'], 'H5T_ORDER_NONE')
        self.assertEqual(strFieldTypeBase['strsize'], 32)
Exemple #46
0
    def testGetExternal(self):
        logging.info("LinkTest.testGetExternal")
        for domain_name in ('tall', 'tall_ro'):
            g1_uuid = None
            domain = domain_name + '.' + config.get('domain')
            root_uuid = helper.getRootUUID(domain)
            g1_uuid = helper.getUUID(domain, root_uuid, 'g1')
            g12_uuid = helper.getUUID(domain, g1_uuid, 'g1.2')
            req = self.endpoint + "/groups/" + g12_uuid + "/links/extlink"
            headers = {'host': domain}
            rsp = requests.get(req, headers=headers)
            self.assertEqual(rsp.status_code, 200)
            rspJson = json.loads(rsp.text)
            self.assertTrue("created" in rspJson)
            self.assertTrue("lastModified" in rspJson)
            target = rspJson['link']
            # self.assertEqual(target, "http://somefile/#h5path(somepath)")

            self.assertEqual(target['class'], 'H5L_TYPE_EXTERNAL')
            self.assertEqual(target['h5domain'], 'somefile')
            self.assertEqual(target['h5path'], 'somepath')
            self.assertEqual(target['title'], 'extlink')
            self.assertTrue('collection' not in target)
Exemple #47
0
 def testGetFill(self):
     domain = 'fillvalue.' + config.get('domain')
     root_uuid = helper.getRootUUID(domain)
     dset_uuid = helper.getUUID(domain, root_uuid, 'dset')
     req = helper.getEndpoint() + "/datasets/" + dset_uuid + "/shape"
     headers = {'host': domain}
     rsp = requests.get(req, headers=headers)
     self.failUnlessEqual(rsp.status_code, 200)
     rspJson = json.loads(rsp.text)
     self.assertEqual(rspJson['class'], 'H5S_SIMPLE')
     self.assertEqual(len(rspJson['dims']), 2)
     self.assertEqual(rspJson['dims'][0], 10)
     self.assertEqual(rspJson['maxdims'][1], 10)
     self.assertEqual(rspJson['fillvalue'], 42)
Exemple #48
0
    def testGetRegionReference(self):
        domain = 'regionref_dset.' + config.get('domain')
        root_uuid = helper.getRootUUID(domain)
        self.assertTrue(helper.validateId(root_uuid))
        ds1_uuid = helper.getUUID(domain, root_uuid, 'DS1')
        ds2_uuid = helper.getUUID(domain, root_uuid, 'DS2')
        req = helper.getEndpoint() + "/datasets/" + ds1_uuid + "/value"
        headers = {'host': domain}
        rsp = requests.get(req, headers=headers)
        self.failUnlessEqual(rsp.status_code, 200)
        rspJson = json.loads(rsp.text)
        self.assertTrue('value' in rspJson)
        value = rspJson['value']
        self.assertEqual(len(value), 2)
        ref0 = value[0]
        self.assertEqual(ref0['select_type'], 'H5S_SEL_POINTS')
        self.assertEqual(ref0['id'], ds2_uuid)
        points = ref0['selection']
        self.assertEqual(len(points), 4)
        self.assertEqual(points[0], [0, 1])
        self.assertEqual(points[1], [2, 11])
        self.assertEqual(points[2], [1, 0])
        self.assertEqual(points[3], [2, 4])

        ref1 = value[1]
        self.assertEqual(ref1['select_type'], 'H5S_SEL_HYPERSLABS')
        self.assertEqual(ref1['id'], ds2_uuid)
        hyperslabs = ref1['selection']
        self.assertEqual(len(hyperslabs), 4)
        self.assertEqual(hyperslabs[0][0], [0, 0])
        self.assertEqual(hyperslabs[0][1], [0, 2])
        self.assertEqual(hyperslabs[1][0], [0, 11])
        self.assertEqual(hyperslabs[1][1], [0, 13])
        self.assertEqual(hyperslabs[2][0], [2, 0])
        self.assertEqual(hyperslabs[2][1], [2, 2])
        self.assertEqual(hyperslabs[3][0], [2, 11])
        self.assertEqual(hyperslabs[3][1], [2, 13])
Exemple #49
0
    def testPost(self):
        for domain_name in ('tall', 'tall_ro'):
            domain = domain_name + '.' + config.get('domain')
            rootUUID = helper.getRootUUID(domain)
            g1UUID = helper.getUUID(domain, rootUUID, 'g1')
            g11UUID = helper.getUUID(domain, g1UUID, 'g1.1')

            # rank 1 dataset
            dset112UUID = helper.getUUID(domain, g11UUID, 'dset1.1.2')
            points = (19, 17, 13, 11, 7, 5, 3, 2)
            req = self.endpoint + "/datasets/" + dset112UUID + "/value"
            payload = {'points': points}
            headers = {'host': domain}

            rsp = requests.post(req, data=json.dumps(payload), headers=headers)
            self.failUnlessEqual(rsp.status_code, 200)
            rspJson = json.loads(rsp.text)
            data = rspJson['value']
            self.assertEqual(len(data), len(points))
            self.assertEqual(points[0], data[0])

            # rank 2 dataset
            dset111UUID = helper.getUUID(domain, g11UUID, 'dset1.1.1')
            points = []
            for i in range(10):
                points.append((i, i))  # get diagonal
            req = self.endpoint + "/datasets/" + dset111UUID + "/value"
            payload = {'points': points}
            headers = {'host': domain}

            rsp = requests.post(req, data=json.dumps(payload), headers=headers)
            self.failUnlessEqual(rsp.status_code, 200)
            rspJson = json.loads(rsp.text)
            data = rspJson['value']
            self.assertEqual(len(data), len(points))
            self.assertEqual(9, data[3])
Exemple #50
0
 def testGetCompound(self):
     domain = 'compound.' + config.get('domain')
     root_uuid = helper.getRootUUID(domain)
     dset_uuid = helper.getUUID(domain, root_uuid, 'dset')
     req = helper.getEndpoint() + "/datasets/" + dset_uuid + "/value"
     headers = {'host': domain}
     rsp = requests.get(req, headers=headers)
     self.failUnlessEqual(rsp.status_code, 200)
     rspJson = json.loads(rsp.text)
     data = rspJson['value']
     self.failUnlessEqual(len(data), 72)
     first = data[0]
     self.failUnlessEqual(len(first), 5)
     self.failUnlessEqual(first[0], 24)
     self.failUnlessEqual(first[1], "13:53")
Exemple #51
0
 def testGetVlen(self):
     domain = 'vlen_dset.' + config.get('domain')
     root_uuid = helper.getRootUUID(domain)
     self.assertTrue(helper.validateId(root_uuid))
     dset_uuid = helper.getUUID(domain, root_uuid, 'DS1')
     req = helper.getEndpoint() + "/datasets/" + dset_uuid + "/value"
     headers = {'host': domain}
     rsp = requests.get(req, headers=headers)
     self.failUnlessEqual(rsp.status_code, 200)
     rspJson = json.loads(rsp.text)
     self.assertTrue('value' in rspJson)
     value = rspJson['value']
     self.assertEqual(len(value), 2)
     self.assertEqual(len(value[1]), 12)
     self.assertEqual(value[1][11], 144)
Exemple #52
0
 def testGetObjectReference(self):
     domain = 'objref_attr.' + config.get('domain')
     root_uuid = helper.getRootUUID(domain)
     self.assertTrue(helper.validateId(root_uuid))
     ds1_uuid = helper.getUUID(domain, root_uuid, 'DS1')
     ds2_uuid = helper.getUUID(domain, root_uuid, 'DS2')
     g1_uuid = helper.getUUID(domain, root_uuid, 'G1')
     req = helper.getEndpoint() + "/datasets/" + ds1_uuid + "/attributes/A1"
     headers = {'host': domain}
     rsp = requests.get(req, headers=headers)
     self.failUnlessEqual(rsp.status_code, 200)
     rspJson = json.loads(rsp.text)
     shape = rspJson['shape']
     self.assertEqual(shape['class'], 'H5S_SIMPLE')
     self.assertEqual(len(shape['dims']), 1)
     self.assertEqual(shape['dims'][0], 2)
     typeItem = rspJson['type']
     self.assertEqual(typeItem['class'], 'H5T_REFERENCE')
     self.assertEqual(typeItem['base'], 'H5T_STD_REF_OBJ')
     self.assertTrue('value' in rspJson)
     value = rspJson['value']
     self.assertEqual(len(value), 2)
     self.assertEqual(value[0], '/groups/' + g1_uuid)
     self.assertEqual(value[1], '/datasets/' + ds2_uuid)
Exemple #53
0
    def testGet(self):
        domain = 'namedtype.' + config.get('domain')
        root_uuid = helper.getRootUUID(domain)
        dtype_uuid = helper.getUUID(domain, root_uuid, 'dtype_simple')
        self.assertTrue(helper.validateId(dtype_uuid))

        req = helper.getEndpoint() + "/datatypes/" + dtype_uuid
        headers = {'host': domain}
        rsp = requests.get(req, headers=headers)
        self.failUnlessEqual(rsp.status_code, 200)
        rspJson = json.loads(rsp.text)
        self.assertEqual(rspJson['id'], dtype_uuid)
        typeItem = rspJson['type']
        self.assertEqual(typeItem['class'], 'H5T_FLOAT')
        self.assertEqual(typeItem['base'], 'H5T_IEEE_F32LE')
        self.assertEqual(rspJson['attributeCount'], 1)
Exemple #54
0
    def testDelete(self):
        domain = 'namedtype_deleted.' + config.get('domain')
        root_uuid = helper.getRootUUID(domain)
        dtype_uuid = helper.getUUID(domain, root_uuid, 'dtype_simple')
        self.assertTrue(helper.validateId(dtype_uuid))

        req = helper.getEndpoint() + "/datatypes/" + dtype_uuid
        headers = {'host': domain}
        rsp = requests.delete(req, headers=headers)
        self.failUnlessEqual(rsp.status_code, 200)

        # verify that it's gone
        req = helper.getEndpoint() + "/datatypes/" + dtype_uuid
        headers = {'host': domain}
        rsp = requests.get(req, headers=headers)
        self.failUnlessEqual(rsp.status_code, 410)
Exemple #55
0
 def testDelete(self):
     domain = 'tall_g2_deleted.' + config.get('domain')
     rootUUID = helper.getRootUUID(domain)
     helper.validateId(rootUUID)
     g2UUID = helper.getUUID(domain, rootUUID, 'g2')
     self.assertTrue(helper.validateId(g2UUID))
     req = self.endpoint + "/groups/" + g2UUID
     headers = {'host': domain}
     rsp = requests.delete(req, headers=headers)
     self.failUnlessEqual(rsp.status_code, 200)
     rspJson = json.loads(rsp.text)
     self.assertTrue("hrefs" in rspJson)
     # do a GET, should return 410 (GONE)
     req = self.endpoint + "/groups/" + g2UUID
     rsp = requests.get(req, headers=headers)
     self.failUnlessEqual(rsp.status_code, 410)
Exemple #56
0
 def testGetVLenString(self):
     domain = 'vlen_string_dset.' + config.get('domain')
     root_uuid = helper.getRootUUID(domain)
     self.assertTrue(helper.validateId(root_uuid))
     dset_uuid = helper.getUUID(domain, root_uuid, 'DS1')
     req = helper.getEndpoint() + "/datasets/" + dset_uuid + "/value"
     headers = {'host': domain}
     rsp = requests.get(req, headers=headers)
     rspJson = json.loads(rsp.text)
     self.assertTrue('value' in rspJson)
     value = rspJson['value']
     self.assertEqual(len(value), 4)
     self.assertEqual(value[0], "Parting")
     self.assertEqual(value[1], "is such")
     self.assertEqual(value[2], "sweet")
     self.assertEqual(value[3], "sorrow.")
Exemple #57
0
 def testGetUDLink(self):
     logging.info("LinkTest.testGetUDLink")
     domain_name = 'tall_with_udlink'
     domain = domain_name + '.' + config.get('domain')
     root_uuid = helper.getRootUUID(domain)
     g2_uuid = helper.getUUID(domain, root_uuid, 'g2')
     req = self.endpoint + "/groups/" + g2_uuid + "/links/udlink"
     headers = {'host': domain}
     rsp = requests.get(req, headers=headers)
     self.failUnlessEqual(rsp.status_code, 200)
     rspJson = json.loads(rsp.text)
     self.assertTrue("created" in rspJson)
     self.assertTrue("lastModified" in rspJson)
     self.failUnlessEqual(rspJson['class'], 'user')
     self.failUnlessEqual(rspJson['title'], 'udlink')
     self.failUnlessEqual(rspJson['href'], '???')
Exemple #58
0
 def testGetSimpleOneElementString(self):
     domain = 'scalar.' + config.get('domain')
     root_uuid = helper.getRootUUID(domain)
     self.assertTrue(helper.validateId(root_uuid))
     dset_uuid = helper.getUUID(domain, root_uuid, '1ds')
     req = helper.getEndpoint() + "/datasets/" + dset_uuid
     headers = {'host': domain}
     rsp = requests.get(req, headers=headers)
     self.failUnlessEqual(rsp.status_code, 200)
     rspJson = json.loads(rsp.text)
     type = rspJson['type']
     self.assertEqual(type['class'], 'H5T_STRING')
     shape = rspJson['shape']
     self.assertEqual(shape['class'], 'H5S_SIMPLE')
     self.assertTrue('dims' in shape)
     self.assertEqual(shape['dims'][0], 1)
Exemple #59
0
 def testGetRegionReference(self):
     domain = 'regionref_dset.' + config.get('domain')
     root_uuid = helper.getRootUUID(domain)
     self.assertTrue(helper.validateId(root_uuid))
     dset_uuid = helper.getUUID(domain, root_uuid, 'DS1')
     req = helper.getEndpoint() + "/datasets/" + dset_uuid
     headers = {'host': domain}
     rsp = requests.get(req, headers=headers)
     self.failUnlessEqual(rsp.status_code, 200)
     rspJson = json.loads(rsp.text)
     shape = rspJson['shape']
     self.assertEqual(shape['class'], 'H5S_SIMPLE')
     self.assertEqual(len(shape['dims']), 1)
     self.assertEqual(shape['dims'][0], 2)
     typeItem = rspJson['type']
     self.assertEqual(typeItem['class'], 'H5T_REFERENCE')
     self.assertEqual(typeItem['base'], 'H5T_STD_REF_DSETREG')
Exemple #60
0
 def testGetArray(self):
     domain = 'array_dset.' + config.get('domain')
     root_uuid = helper.getRootUUID(domain)
     self.assertTrue(helper.validateId(root_uuid))
     dset_uuid = helper.getUUID(domain, root_uuid, 'DS1')
     req = helper.getEndpoint() + "/datasets/" + dset_uuid + "/value"
     headers = {'host': domain}
     rsp = requests.get(req, headers=headers)
     self.failUnlessEqual(rsp.status_code, 200)
     rspJson = json.loads(rsp.text)
     self.assertTrue('value' in rspJson)
     value = rspJson['value']
     self.assertEqual(len(value),
                      4)  # four dataset elements (each an array)
     self.assertEqual(len(value[0]), 3)  # 3x5 array shape
     self.assertEqual(len((value[0])[0]), 5)  # 3x5 array shape
     self.assertEqual(value[0][2][4], -8)  # pull out a value from the array