Skip to content

Commit 892a3ec

Browse files
author
Stephanie Reeder
committed
fix typos found by tests, add FeatureGeometryWKT to testscripts
1 parent a835f77 commit 892a3ec

File tree

6 files changed

+44
-43
lines changed

6 files changed

+44
-43
lines changed

odm2api/ODM2/services/readService.py

Lines changed: 10 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -263,7 +263,7 @@ def getProcessingLevels(self, ids=None, codes=None):
263263
Sampling Feature
264264
"""
265265

266-
def getSamplingFeatures(self, ids=None, codes=None, uuid=None, type=None, wkt=None):
266+
def getSamplingFeatures(self, ids=None, codes=None, uuids=None, type=None, wkt=None):
267267
"""
268268
getSamplingFeatures
269269
* Pass nothing - returns a list of all sampling feature objects with each object of type specific to that sampling feature
@@ -278,6 +278,7 @@ def getSamplingFeatures(self, ids=None, codes=None, uuid=None, type=None, wkt=No
278278
if type: q = q.filter_by(SamplingFeatureTypeCV=type)
279279
if ids: q = q.filter(SamplingFeatures.SamplingFeatureID.in_(ids))
280280
if codes: q = q.filter(SamplingFeatures.SamplingFeatureCode.in_(codes))
281+
if uuids: q = q.filter(SamplingFeatures.SamplingFeatureUUID.in_(uuids))
281282
if wkt: q = q.filter_by(FeatureGeometryWKT=wkt)
282283
try:
283284
return q.all()
@@ -423,7 +424,7 @@ def getAffiliations(self, ids=None, personfirst=None, personlast=None, orgcode=N
423424
Results
424425
"""
425426

426-
def getResults(self, ids=None, actionid=None, simulationid = None):
427+
def getResults(self, ids=None, uuids= None, actionid=None, simulationid = None):
427428

428429
# TODO what if user sends in both type and actionid vs just actionid
429430
"""
@@ -436,12 +437,12 @@ def getResults(self, ids=None, actionid=None, simulationid = None):
436437
query = self._session.query(Results)
437438

438439
if actionid: query = query.join(FeatureActions).filter_by(ActionID=actionid)
439-
if simulationid: query = query.join(Results)\
440-
.join(FeatureActions)\
440+
if simulationid: query = query.join(FeatureActions)\
441441
.join(Actions)\
442442
.join(Simulations)\
443443
.filter(Simulations.SimulationID == simulationid)
444444
if ids: query = query.filter(Results.ResultID.in_(ids))
445+
if uuids: query =query.filter(Results.ResultUUID.in_(uuids))
445446

446447
try:
447448
return query.all()
@@ -490,7 +491,7 @@ def getResults(self, ids=None, actionid=None, simulationid = None):
490491
Datasets
491492
"""
492493

493-
def getDataSets(self, codes=None):
494+
def getDataSets(self, codes=None, uuids=None):
494495
"""
495496
getDataSets()
496497
* Pass nothing - returns a list of all DataSet objects
@@ -500,6 +501,8 @@ def getDataSets(self, codes=None):
500501
q = self._session.query(DataSets)
501502
if codes:
502503
q = q.filter(DataSets.DataSetCode.in_(codes))
504+
if uuids:
505+
q.q.filter(DataSets.DataSetUUID.in_(uuids))
503506
try:
504507
return q.all()
505508
except:
@@ -761,17 +764,7 @@ def getSimulations(self, name=None, actionid=None):
761764
except:
762765
return None
763766

764-
#
765-
# def getResultsBySimulationID(self, simulationid):
766-
# try:
767-
# return self._session.query(Results) \
768-
# .join(FeatureActions) \
769-
# .join(Actions) \
770-
# .join(Simulations) \
771-
# .filter(Simulations.SimulationID == simulationid).all()
772-
# except Exception, e:
773-
# print e
774-
# return None
767+
775768

776769
def getModels(self, codes=None):
777770
m = self._session.query(Models)
@@ -796,7 +789,7 @@ def getRelatedModels(self, id=None, code=None):
796789

797790
m = self._session.query(Models).select_from(RelatedModels).join(RelatedModels.RelatedModelObj)
798791
if id: m = m.filter(RelatedModels.ModelID == id)
799-
if code: m = m.filter(Models.ModelCode == code)
792+
if code: m = m.filter(RelatedModels.ModelCode == code)
800793

801794
try:
802795
return m.all()

tests/test_odm2/test_createservice.py

Lines changed: 30 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
from odm2api.ODM2 import models
55
from odm2api.ODMconnection import dbconnection
66
from odm2api.ODM2.services.createService import CreateODM2
7+
import uuid
78
# run this test from the root directory using:
89
# python -m pytest tests/test_odm2/test_createservice.py
910

@@ -63,8 +64,8 @@ def test_createVariable(self):
6364
nodv = -9999
6465
speciation="mg/L as PO4"
6566
definition="This is a test variable"
66-
v = models.Variables(VariableCode = code, VariableNameCV=name, VariableTypeCV=vType, NoDataValue= nodv, SpeciationCV = speciation,
67-
VariableDefinition=definition)
67+
v = models.Variables(VariableCode = code, VariableNameCV=name, VariableTypeCV=vType, NoDataValue= nodv, SpeciationCV = None,
68+
VariableDefinition=None)
6869
# self.writer.createVariable(code = code,name = name,vType = vType,nodv =nodv,speciation=None,definition=None)
6970
self.writer.createVariable(v)
7071
# assert that this dataset has been successfully inserted
@@ -77,9 +78,9 @@ def test_createVariable(self):
7778
assert(res[5] == None) # speciation
7879
assert(res[6] == nodv ) # nodata
7980

80-
v = models.Variables(VariableCode = code, VariableName=name, VariableTypeCV=vType, NoDataValue= nodv, Speciation = speciation,
81-
Definition=definition)
82-
# self.writer.createVariable(code = code,name = name,vType = vType,nodv =nodv,speciation=None,definition=None)
81+
v = models.Variables(VariableCode = code, VariableNameCV=name, VariableTypeCV=vType, NoDataValue= nodv, SpeciationCV = speciation,
82+
VariableDefinition=None)
83+
# self.writer.createVariable(code = code,name = name,vType = vType,nodv =nodv,speciation=speciation,definition=None)
8384
self.writer.createVariable(v)
8485

8586
# assert that this dataset has been successfully inserted
@@ -92,9 +93,9 @@ def test_createVariable(self):
9293
assert(res[5] == speciation) # speciation
9394
assert(res[6] == nodv ) # nodata
9495

95-
v = models.Variables(VariableCode = code, VariableName=name, VariableTypeCV=vType, NoDataValue= nodv, Speciation = speciation,
96-
Definition=definition)
97-
# self.writer.createVariable(code = code,name = name,vType = vType,nodv =nodv,speciation=None,definition=None)
96+
v = models.Variables(VariableCode = code, VariableNameCV=name, VariableTypeCV=vType, NoDataValue= nodv, SpeciationCV = None,
97+
VariableDefinition=definition)
98+
# self.writer.createVariable(code = code,name = name,vType = vType,nodv =nodv,speciation=None,definition=definition)
9899
self.writer.createVariable(v)
99100

100101

@@ -109,9 +110,9 @@ def test_createVariable(self):
109110
assert(res[6] == nodv ) # nodata
110111

111112

112-
v = models.Variables(VariableCode = code, VariableName=name, VariableTypeCV=vType, NoDataValue= nodv, Speciation = speciation,
113-
Definition=definition)
114-
# self.writer.createVariable(code = code,name = name,vType = vType,nodv =nodv,speciation=None,definition=None)
113+
v = models.Variables(VariableCode = code, VariableNameCV=name, VariableTypeCV=vType, NoDataValue= nodv, SpeciationCV = speciation,
114+
VariableDefinition=definition)
115+
# self.writer.createVariable(code = code,name = name,vType = vType,nodv =nodv,speciation=speciation,definition=definition)
115116
self.writer.createVariable(v)
116117

117118

@@ -163,8 +164,8 @@ def test_createDataset(self):
163164
# dscode=code,
164165
# dstitle=title,
165166
# dsabstract=desc)
166-
#TODO uuid
167-
d = models.DataSets(DataSetTypeCV = type, DataSetCode =code, DataSetTitle=title, DataSetAbstract = desc)
167+
168+
d = models.DataSets(DataSetTypeCV = type, DataSetCode =code, DataSetTitle=title, DataSetAbstract = desc, DataSetUUID = uuid.uuid4().hex)
168169
dataset = self.writer.createDataset(d)
169170

170171

@@ -201,7 +202,7 @@ def test_createResult(self):
201202
# resulttypecv = 'time series',
202203
# taxonomicclass=None, resultdatetime=None, resultdatetimeutcoffset=None,
203204
# validdatetime=None, validdatetimeutcoffset=None, statuscv=None)
204-
#TODO uuid
205+
205206
r = models.Results(FeatureActionID = 1,
206207
VariableID=1,
207208
UnitsID =1,
@@ -214,7 +215,9 @@ def test_createResult(self):
214215
ResultDateTimeUTCOffset = None,
215216
ValidDateTime=None,
216217
ValidDateTimeUTCOffset = None,
217-
StatusCV = None
218+
StatusCV = None,
219+
ResultUUID = uuid.uuid4().hex
220+
218221
)
219222
self.writer.createResult(r)
220223

@@ -235,14 +238,16 @@ def test_createTimeSeriesResult(self):
235238
# create a basic result record
236239
# self.writer.createResult(featureactionid = 1,variableid = 1,unitid = 1,processinglevelid = 1,
237240
# valuecount = 0,sampledmedium = 'unknown',resulttypecv = 'time series')
238-
#TODO uuid
241+
239242
r = models.Results(FeatureActionID = 1,
240243
VariableID=1,
241244
UnitsID =1,
242245
ProcessingLevelID = 1,
243246
ValueCount = 0,
244247
SampledMediumCV = 'unknown',
245248
ResultTypeCV = 'time series',
249+
ResultUUID = uuid.uuid4().hex
250+
246251

247252
)
248253
self.writer.createResult(r)
@@ -252,9 +257,9 @@ def test_createTimeSeriesResult(self):
252257

253258
# create most basic time series result record possible
254259
# tsr = self.writer.createTimeSeriesResult(result=result, aggregationstatistic='unknown')
255-
t = models.TimeSeriesResults(ResultID = result.ResultID, AggregationStatisticCV = 'unknown')
256-
tsr= self.writer.createResults(t)
257-
# assert that this basic tsr exists in the datbase
260+
# t = models.TimeSeriesResults(ResultID = result.ResultID, AggregationStatisticCV = 'unknown')
261+
# tsr= self.writer.createResult(t)
262+
# assert that this basic tsr exists in the database
258263
res = self.engine.execute('SELECT * FROM TimeSeriesResults').first()
259264
assert(res is not None)
260265

@@ -308,15 +313,16 @@ def test_createSimulation(self):
308313
s = models.Simulations(ActionID = 1,
309314
SimulationName ="MySimulation",
310315
SimulationDescription = "My simulation description",
311-
SimulationsStartDateTime = st,
316+
SimulationStartDateTime = st,
312317
SimulationStartDateTimeUTCOffset=6,
313-
SimulationEdnDateTime=et,
318+
SimulationEndDateTime=et,
314319
SimulationEndDateTimeUTCOffset=6,
315320
TimeStepValue=1,
316-
TimeStepuUnitsID=1,
317-
InputDataSetID=None
321+
TimeStepUnitsID=1,
322+
InputDataSetID=None,
323+
ModelID = 1
318324
)
319-
sim = self.writer.creatSimulation(s)
325+
sim = self.writer.createSimulation(s)
320326

321327
# assert that this record has been successfully inserted
322328
res = self.engine.execute('SELECT * from Simulations')

tests/test_odm2/test_readservice.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@ def test_getRelatedModelsByID(self):
138138
resapi = self.reader.getRelatedModels(id = 2)
139139

140140
assert resapi is not None
141-
assert resapi[0].ModelObj.ModelCode == 'swat'
141+
assert resapi[0].ModelCode == 'swat'
142142

143143
def test_getRelatedModelsByCode(self):
144144

@@ -148,7 +148,7 @@ def test_getRelatedModelsByCode(self):
148148

149149
assert resapi is not None
150150
assert len(resapi) > 0
151-
assert resapi[0].ModelObj.ModelCode == 'swat'
151+
assert resapi[0].ModelCode == 'swat'
152152

153153
# test model code that doesn't exist
154154
# resapi = self.reader.getRelatedModelsByCode('None')

tests/usecasesql/littlebearriver/sampledatabases/odm2_mysql/LBR_MySQL_SmallExample.sql

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2916,6 +2916,7 @@ CREATE TABLE `SamplingFeatures` (
29162916
`SamplingFeatureDescription` varchar(500) DEFAULT NULL,
29172917
`SamplingFeatureGeotypeCV` varchar(255) DEFAULT NULL,
29182918
`FeatureGeometry` geometry DEFAULT NULL,
2919+
`FeatureGeometryWKT` varchar(50) DEFAULT NULL,
29192920
`Elevation_m` double DEFAULT NULL,
29202921
`ElevationDatumCV` varchar(255) DEFAULT NULL,
29212922
PRIMARY KEY (`SamplingFeatureID`),

tests/usecasesql/marchantariats/marchantariats.sql

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1709,6 +1709,7 @@ CREATE TABLE samplingfeatures (
17091709
samplingfeaturedescription character varying(500),
17101710
samplingfeaturegeotypecv character varying(255),
17111711
featuregeometry public.geometry,
1712+
featuregeometrywkt character varying(50),
17121713
elevation_m double precision,
17131714
elevationdatumcv character varying(255),
17141715
CONSTRAINT enforce_dims_featuregeometry CHECK ((public.st_ndims(featuregeometry) = 2))

0 commit comments

Comments
 (0)