def test_last ( self ): # Make an annotation annid = makeAnno ( 2, SITE_HOST ) # set the type synapse_type = random.randint (0,100) url = "http://%s/ca/%s/%s/setField/synapse_type/%s/" % ( SITE_HOST, 'unittest',str(annid), synapse_type ) req = urllib2.Request ( url ) f = urllib2.urlopen ( url ) assert f.read()=='' # get the synapse_type url = "http://%s/ca/%s/%s/getField/synapse_type/" % ( SITE_HOST, 'unittest',str(annid)) req = urllib2.Request ( url ) f = urllib2.urlopen ( url ) assert synapse_type == int(f.read()) # set the weight weight = random.random () url = "http://%s/ca/%s/%s/setField/weight/%s/" % ( SITE_HOST, 'unittest',str(annid), weight ) req = urllib2.Request ( url ) f = urllib2.urlopen ( url ) assert f.read()=='' # get the weight url = "http://%s/ca/%s/%s/getField/weight/" % ( SITE_HOST, 'unittest',str(annid)) req = urllib2.Request ( url ) f = urllib2.urlopen ( url ) assert weight - float(f.read()) < 0.001 # check inheritance # set the status status = random.randint (0,100) url = "http://%s/ca/%s/%s/setField/status/%s/" % ( SITE_HOST, 'unittest',str(annid), status ) req = urllib2.Request ( url ) f = urllib2.urlopen ( url ) assert f.read()=='' # get the status url = "http://%s/ca/%s/%s/getField/status/" % ( SITE_HOST, 'unittest',str(annid)) req = urllib2.Request ( url ) f = urllib2.urlopen ( url ) assert status == int(f.read())
def test_query (self): """Test the function that lists objects of different types.""" # synapse annotations anntype = 2 status = random.randint(0,100) confidence = random.random()*0.3+0.1 # number between 0.1 and 0.4 synapse_type = random.randint(0,100) synapse_weight = random.random()*0.9+0.1 # number between 0.1 and 0.9 for i in range (10): # Make an annotation annid = makeAnno ( anntype, SITE_HOST ) # set some fields in the even annotations if i % 2 == 0: url = "http://%s/ca/%s/%s/setField/status/%s/" % ( SITE_HOST, 'unittest',str(annid), status ) req = urllib2.Request ( url ) f = urllib2.urlopen ( url ) assert f.read()=='' # set the confidence url = "http://%s/ca/%s/%s/setField/confidence/%s/" % ( SITE_HOST, 'unittest',str(annid), confidence ) req = urllib2.Request ( url ) f = urllib2.urlopen ( url ) assert f.read()=='' # set the type url = "http://%s/ca/%s/%s/setField/synapse_type/%s/" % ( SITE_HOST, 'unittest',str(annid), synapse_type ) req = urllib2.Request ( url ) f = urllib2.urlopen ( url ) assert f.read()=='' # set some fields in the even annotations if i % 2 == 1: # set the confidence url = "http://%s/ca/%s/%s/setField/confidence/%s/" % ( SITE_HOST, 'unittest',str(annid), 1.0-confidence ) req = urllib2.Request ( url ) f = urllib2.urlopen ( url ) assert f.read()=='' # check the status url = "http://%s/ca/%s/query/status/%s/" % ( SITE_HOST, 'unittest', status ) req = urllib2.Request ( url ) f = urllib2.urlopen ( url ) retfile = tempfile.NamedTemporaryFile ( ) retfile.write ( f.read() ) retfile.seek(0) h5ret = h5py.File ( retfile.name, driver='core', backing_store=False ) assert h5ret['ANNOIDS'].shape[0] ==5 # check all the confidence variants url = "http://%s/ca/%s/query/confidence/%s/%s/" % ( SITE_HOST, 'unittest', 'lt', 1.0-confidence-0.0001 ) req = urllib2.Request ( url ) f = urllib2.urlopen ( url ) retfile = tempfile.NamedTemporaryFile ( ) retfile.write ( f.read() ) retfile.seek(0) h5ret = h5py.File ( retfile.name, driver='core', backing_store=False ) assert h5ret['ANNOIDS'].shape[0] ==5 url = "http://%s/ca/%s/query/confidence/%s/%s/" % ( SITE_HOST, 'unittest', 'gt', confidence+0.00001 ) req = urllib2.Request ( url ) f = urllib2.urlopen ( url ) retfile = tempfile.NamedTemporaryFile ( ) retfile.write ( f.read() ) retfile.seek(0) h5ret = h5py.File ( retfile.name, driver='core', backing_store=False ) assert h5ret['ANNOIDS'].shape[0] ==5
def test_fields (self): """Test the getField and setField""" # Make an annotation annid = makeAnno ( 1, SITE_HOST ) # set the status status = random.randint (0,100) url = "http://%s/ca/%s/%s/setField/status/%s/" % ( SITE_HOST, 'unittest',str(annid), status ) req = urllib2.Request ( url ) f = urllib2.urlopen ( url ) assert f.read()=='' # get the status url = "http://%s/ca/%s/%s/getField/status/" % ( SITE_HOST, 'unittest',str(annid)) req = urllib2.Request ( url ) f = urllib2.urlopen ( url ) assert status == int(f.read()) # set the confidence confidence = random.random () url = "http://%s/ca/%s/%s/setField/confidence/%s/" % ( SITE_HOST, 'unittest',str(annid), confidence ) req = urllib2.Request ( url ) f = urllib2.urlopen ( url ) assert f.read()=='' # get the confidence url = "http://%s/ca/%s/%s/getField/confidence/" % ( SITE_HOST, 'unittest',str(annid)) req = urllib2.Request ( url ) f = urllib2.urlopen ( url ) assert confidence - float(f.read()) < 0.001 # get the author url = "http://%s/ca/%s/%s/getField/author/" % ( SITE_HOST, 'unittest',str(annid)) req = urllib2.Request ( url ) f = urllib2.urlopen ( url ) assert 'Unit Test' == f.read() # Make a synapse annid = makeAnno ( 2, SITE_HOST ) # set the type synapse_type = random.randint (0,100) url = "http://%s/ca/%s/%s/setField/synapse_type/%s/" % ( SITE_HOST, 'unittest',str(annid), synapse_type ) req = urllib2.Request ( url ) f = urllib2.urlopen ( url ) assert f.read()=='' # get the synapse_type url = "http://%s/ca/%s/%s/getField/synapse_type/" % ( SITE_HOST, 'unittest',str(annid)) req = urllib2.Request ( url ) f = urllib2.urlopen ( url ) assert synapse_type == int(f.read()) # set the weight weight = random.random () url = "http://%s/ca/%s/%s/setField/weight/%s/" % ( SITE_HOST, 'unittest',str(annid), weight ) req = urllib2.Request ( url ) f = urllib2.urlopen ( url ) assert f.read()=='' # get the weight url = "http://%s/ca/%s/%s/getField/weight/" % ( SITE_HOST, 'unittest',str(annid)) req = urllib2.Request ( url ) f = urllib2.urlopen ( url ) assert weight - float(f.read()) < 0.001 # check inheritance # set the status status = random.randint (0,100) url = "http://%s/ca/%s/%s/setField/status/%s/" % ( SITE_HOST, 'unittest',str(annid), status ) req = urllib2.Request ( url ) f = urllib2.urlopen ( url ) assert f.read()=='' # get the status url = "http://%s/ca/%s/%s/getField/status/" % ( SITE_HOST, 'unittest',str(annid)) req = urllib2.Request ( url ) f = urllib2.urlopen ( url ) assert status == int(f.read()) # Make a seed annid = makeAnno ( 3, SITE_HOST ) # set the parent parent = random.randint (0,100) url = "http://%s/ca/%s/%s/setField/parent/%s/" % ( SITE_HOST, 'unittest',str(annid), parent ) req = urllib2.Request ( url ) f = urllib2.urlopen ( url ) assert f.read()=='' # get the parent url = "http://%s/ca/%s/%s/getField/parent/" % ( SITE_HOST, 'unittest',str(annid)) req = urllib2.Request ( url ) f = urllib2.urlopen ( url ) assert parent == int(f.read()) # set the source source = random.randint (0,100) url = "http://%s/ca/%s/%s/setField/source/%s/" % ( SITE_HOST, 'unittest',str(annid), source ) req = urllib2.Request ( url ) f = urllib2.urlopen ( url ) assert f.read()=='' # get the source url = "http://%s/ca/%s/%s/getField/source/" % ( SITE_HOST, 'unittest',str(annid)) req = urllib2.Request ( url ) f = urllib2.urlopen ( url ) assert source == int(f.read()) # set the cubelocation cubelocation = random.randint (0,100) url = "http://%s/ca/%s/%s/setField/cubelocation/%s/" % ( SITE_HOST, 'unittest',str(annid), cubelocation ) req = urllib2.Request ( url ) f = urllib2.urlopen ( url ) assert f.read()=='' # get the cubelocation url = "http://%s/ca/%s/%s/getField/cubelocation/" % ( SITE_HOST, 'unittest',str(annid)) req = urllib2.Request ( url ) f = urllib2.urlopen ( url ) assert cubelocation == int(f.read()) # Make a segment annid = makeAnno ( 4, SITE_HOST ) # set the parentseed parentseed = random.randint (0,100) url = "http://%s/ca/%s/%s/setField/parentseed/%s/" % ( SITE_HOST, 'unittest',str(annid), parentseed ) req = urllib2.Request ( url ) f = urllib2.urlopen ( url ) assert f.read()=='' # get the parentseed url = "http://%s/ca/%s/%s/getField/parentseed/" % ( SITE_HOST, 'unittest',str(annid)) req = urllib2.Request ( url ) f = urllib2.urlopen ( url ) assert parentseed == int(f.read()) # set the segmentclass segmentclass = random.randint (0,100) url = "http://%s/ca/%s/%s/setField/segmentclass/%s/" % ( SITE_HOST, 'unittest',str(annid), segmentclass ) req = urllib2.Request ( url ) f = urllib2.urlopen ( url ) assert f.read()=='' # get the segmentclass url = "http://%s/ca/%s/%s/getField/segmentclass/" % ( SITE_HOST, 'unittest',str(annid)) req = urllib2.Request ( url ) f = urllib2.urlopen ( url ) assert segmentclass == int(f.read()) # set the neuron neuron = random.randint (0,100) url = "http://%s/ca/%s/%s/setField/neuron/%s/" % ( SITE_HOST, 'unittest',str(annid), neuron ) req = urllib2.Request ( url ) f = urllib2.urlopen ( url ) assert f.read()=='' # get the neuron url = "http://%s/ca/%s/%s/getField/neuron/" % ( SITE_HOST, 'unittest',str(annid)) req = urllib2.Request ( url ) f = urllib2.urlopen ( url ) assert neuron == int(f.read()) # check inheritance # set the status status = random.randint (0,100) url = "http://%s/ca/%s/%s/setField/status/%s/" % ( SITE_HOST, 'unittest',str(annid), status ) req = urllib2.Request ( url ) f = urllib2.urlopen ( url ) assert f.read()=='' # get the status url = "http://%s/ca/%s/%s/getField/status/" % ( SITE_HOST, 'unittest',str(annid)) req = urllib2.Request ( url ) f = urllib2.urlopen ( url ) assert status == int(f.read()) # Make a neuron annid = makeAnno ( 5, SITE_HOST ) # no independently set fields # check inheritance # set the status status = random.randint (0,100) url = "http://%s/ca/%s/%s/setField/status/%s/" % ( SITE_HOST, 'unittest',str(annid), status ) req = urllib2.Request ( url ) f = urllib2.urlopen ( url ) assert f.read()=='' # get the status url = "http://%s/ca/%s/%s/getField/status/" % ( SITE_HOST, 'unittest',str(annid)) req = urllib2.Request ( url ) f = urllib2.urlopen ( url ) assert status == int(f.read()) # Make an organelle annid = makeAnno ( 6, SITE_HOST ) # set the parentseed parentseed = random.randint (0,100) url = "http://%s/ca/%s/%s/setField/parentseed/%s/" % ( SITE_HOST, 'unittest',str(annid), parentseed ) req = urllib2.Request ( url ) f = urllib2.urlopen ( url ) assert f.read()=='' # get the parentseed url = "http://%s/ca/%s/%s/getField/parentseed/" % ( SITE_HOST, 'unittest',str(annid)) req = urllib2.Request ( url ) f = urllib2.urlopen ( url ) assert parentseed == int(f.read()) # set the organelleclass organelleclass = random.randint (0,100) url = "http://%s/ca/%s/%s/setField/organelleclass/%s/" % ( SITE_HOST, 'unittest',str(annid), organelleclass ) req = urllib2.Request ( url ) f = urllib2.urlopen ( url ) assert f.read()=='' # get the organelleclass url = "http://%s/ca/%s/%s/getField/organelleclass/" % ( SITE_HOST, 'unittest',str(annid)) req = urllib2.Request ( url ) f = urllib2.urlopen ( url ) assert organelleclass == int(f.read()) # check inheritance # set the status status = random.randint (0,100) url = "http://%s/ca/%s/%s/setField/status/%s/" % ( SITE_HOST, 'unittest',str(annid), status ) req = urllib2.Request ( url ) f = urllib2.urlopen ( url ) assert f.read()=='' # get the status url = "http://%s/ca/%s/%s/getField/status/" % ( SITE_HOST, 'unittest',str(annid)) req = urllib2.Request ( url ) f = urllib2.urlopen ( url ) assert status == int(f.read()) # TODO error caes. # bad format to a number url = "http://%s/ca/%s/%s/setField/status/aa/" % ( SITE_HOST, 'unittest',str(annid)) with pytest.raises(urllib2.HTTPError): req = urllib2.Request ( url ) f = urllib2.urlopen ( url ) # RBTODO add tests key/value and compound fields. # assign a field for a wrong annotation type # url = "http://%s/ca/%s/%s/setField/segmentclass/2/" % ( SITE_HOST, 'unittest',str(annid)) # with pytest.raises(urllib2.HTTPError): # req = urllib2.Request ( url ) # f = urllib2.urlopen ( url ) # assign a missing field # url = "http://%s/ca/%s/%s/setField/nonesuch/2/" % ( SITE_HOST, 'unittest',str(annid)) # with pytest.raises(urllib2.HTTPError): # req = urllib2.Request ( url ) # f = urllib2.urlopen ( url ) # request a missing field url = "http://%s/ca/%s/%s/getField/othernonesuch/" % ( SITE_HOST, 'unittest',str(annid)) with pytest.raises(urllib2.HTTPError): req = urllib2.Request ( url ) f = urllib2.urlopen ( url )