Skip to content

Commit 521ad08

Browse files
committed
Fix some tests following updated API
1 parent a8277c3 commit 521ad08

2 files changed

Lines changed: 89 additions & 74 deletions

File tree

tests/test_odm2/test_odm2.py

Lines changed: 82 additions & 69 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
__author__ = 'tony castronova'
2-
__author__ = 'david valentine'
1+
from __future__ import (absolute_import, division, print_function)
32

43
#import unittest
54

@@ -8,10 +7,19 @@
87
from odm2api.ODM2.services.createService import CreateODM2
98
from odm2api.ODM2.services.updateService import UpdateODM2
109
from odm2api.ODM2.services.deleteService import DeleteODM2
11-
from odm2api.ODM2.models import People
10+
from odm2api.ODM2.models import (People,
11+
Variables,
12+
Methods,
13+
ProcessingLevels,
14+
Models)
1215

1316
from tests import test_connection as testConnection
1417
import pytest
18+
19+
20+
__author__ = ['tony castronova', 'david valentine']
21+
22+
1523
xfail = pytest.mark.xfail
1624
skipif = xfail = pytest.mark.skipif
1725
#from pytest import raises use pytest.raises()
@@ -34,7 +42,7 @@ def setup( request):
3442
# build an empty database for testing
3543
# conn = dbconnection.createConnection('sqlite', ':memory:')
3644
db = request.param
37-
print ("dbtype", db[0], db[1])
45+
print("dbtype", db[0], db[1])
3846
session_factory = dbconnection.createConnection(db[1], db[2], db[3], db[4], db[5], echo=False)
3947
assert session_factory is not None, ("failed to create a session for ", db[0], db[1])
4048
assert session_factory.engine is not None, ("failed: session has no engine ", db[0], db[1])
@@ -55,10 +63,10 @@ def setup( request):
5563
s.flush()
5664
# s.invalidate()
5765

58-
print 'database initialization completed successfully'
66+
print('database initialization completed successfully')
5967

6068
def fin():
61-
print ("teardown odm2 test connection")
69+
print("teardown odm2 test connection")
6270
del dbConn.odmread
6371
del dbConn.odmcreate
6472
del dbConn.odmupdate
@@ -151,35 +159,32 @@ def test_personFail(setup):
151159
assert 'null' in str(excinfo.value).lower()
152160

153161
def test_createVariable(setup):
154-
162+
v1 = Variables(VariableCode='Phos_TOT',
163+
VariableNameCV='Phosphorus, total dissolved',
164+
VariableTypeCV='Hydrology',
165+
NoDataValue=-999,
166+
SpeciationCV=None,
167+
VariableDefinition=None)
168+
v2 = Variables(VariableCode='Phos_TOT2',
169+
VariableNameCV='Phosphorus, total dissolved',
170+
VariableTypeCV='Hydrology',
171+
NoDataValue=-999,
172+
SpeciationCV='mg/L',
173+
VariableDefinition=None)
174+
v3 = Variables(VariableCode='Phos_TOT3',
175+
VariableNameCV='Phosphorus, total dissolved',
176+
VariableTypeCV='Hydrology',
177+
NoDataValue=-999,
178+
SpeciationCV=None,
179+
VariableDefinition='some definition')
155180
# create some variables
156-
setup.odmcreate.createVariable( code = 'Phos_TOT',
157-
name = 'Phosphorus, total dissolved',
158-
vType = 'Hydrology',
159-
nodv = -999,
160-
speciation =None ,
161-
definition =None )
162-
setup.odmcreate.createVariable( code = 'Phos_TOT2',
163-
name = 'Phosphorus, total dissolved',
164-
vType = 'Hydrology',
165-
nodv = -999,
166-
speciation ='mg/L' ,
167-
definition =None )
168-
setup.odmcreate.createVariable( code = 'Phos_TOT3',
169-
name = 'Phosphorus, total dissolved',
170-
vType = 'Hydrology',
171-
nodv = -999,
172-
speciation =None ,
173-
definition ='some definition' )
181+
setup.odmcreate.createVariable(v1)
182+
setup.odmcreate.createVariable(v2)
183+
setup.odmcreate.createVariable(v3)
174184

175185
with pytest.raises(Exception) as excinfo:
176186
# insert duplicate
177-
setup.odmcreate.createVariable(code='Phos_TOT',
178-
name='Phosphorus, total dissolved',
179-
vType='Hydrology',
180-
nodv=-999,
181-
speciation=None,
182-
definition=None)
187+
setup.odmcreate.createVariable(v1)
183188

184189
assert 'unique' in str(excinfo.value).lower()
185190

@@ -188,35 +193,38 @@ def test_createVariable(setup):
188193
assert len(vars) == 3
189194

190195

191-
192196
def test_createMethod(setup):
193-
setup.odmcreate.createMethod(code ='mycode',
194-
name='my test method',
195-
vType='test method type',
196-
orgId=None,
197-
link=None,
198-
description='method description')
199-
setup.odmcreate.createMethod(code ='mycode2',
200-
name='my test method',
201-
vType='test method type',
202-
orgId=1,
203-
link=None,
204-
description='method description')
205-
setup.odmcreate.createMethod(code ='mycode3',
206-
name='my test method',
207-
vType='test method type',
208-
orgId=None,
209-
link=None,
210-
description=None)
197+
m1 = Methods(MethodCode='mycode',
198+
MethodName='my test method',
199+
MethodTypeCV='Unknown',
200+
MethodDescription='method description',
201+
MethodLink=None,
202+
OrganizationID=None)
203+
m2 = Methods(MethodCode='mycode2',
204+
MethodName='my test method',
205+
MethodTypeCV='Unknown',
206+
MethodDescription='method description',
207+
MethodLink=None,
208+
OrganizationID=1)
209+
m3 = Methods(MethodCode='mycode3',
210+
MethodName='my test method',
211+
MethodTypeCV='Unknown',
212+
MethodDescription=None,
213+
MethodLink=None,
214+
OrganizationID=None)
215+
setup.odmcreate.createMethod(m1)
216+
setup.odmcreate.createMethod(m2)
217+
setup.odmcreate.createMethod(m3)
211218
methods = setup.odmread.getMethods()
212219

213220
assert len(methods) == 3
214221

215222

216223
def test_ProcessingLevel(setup):
217-
setup.odmcreate.createProcessingLevel(code="testlevel",
218-
definition="this is a test processing level",
219-
explanation=None)
224+
pl = ProcessingLevels(ProcessingLevelCode='testlevel',
225+
Definition='this is a test processing level',
226+
explanation=None)
227+
setup.odmcreate.createProcessingLevel(pl)
220228
res = setup.odmread.getProcessingLevels()
221229

222230
assert len(res) == 1
@@ -307,17 +315,22 @@ def test_createDeploymentAction(setup):
307315

308316
assert len(res) == 1
309317

310-
def test_createModel(setup):
311318

319+
def test_createModel(setup):
320+
mod1 = Models(ModelCode='converter',
321+
ModelName='mymodel',
322+
ModelDescription='my test converter')
323+
mod2 = Models(ModelCode='model2',
324+
ModelName='mymodel',
325+
ModelDescription=None)
326+
mod3 = Models(ModelCode='converter',
327+
ModelName='mymodel2',
328+
ModelDescription='my test model2')
312329
# create converter (expected: record inserted)
313-
setup.odmcreate.createModel(code='converter',
314-
name='mymodel',
315-
description='my test converter')
330+
setup.odmcreate.createModel(mod1)
316331

317332
# create with no description (expected: record inserted)
318-
setup.odmcreate.createModel(code='model2',
319-
name='mymodel',
320-
description=None)
333+
setup.odmcreate.createModel(mod2)
321334

322335

323336
res = setup.odmread.getAllModels()
@@ -330,24 +343,24 @@ def test_createModel(setup):
330343

331344
with pytest.raises(Exception) as excinfo:
332345
# create converter with duplicate code (expected: fail to insert record)
333-
setup.odmcreate.createModel(code='converter',
334-
name='mymodel2',
335-
description='my test model2')
346+
setup.odmcreate.createModel(mod3)
336347
assert 'unique' in str(excinfo.value).lower()
337348

338349

339350
def test_createRelatedModel(setup):
340351
# create a relationship type
341352
setup.odmcreate.getSession().execute(
342353
"insert into cv_relationshiptype values ('coupled', 'coupled converter', 'models that have been coupled together', 'modeling', NULL)")
354+
mod1 = Models(ModelCode='converter',
355+
ModelName='mymodel',
356+
ModelDescription='my test converter')
357+
mod2 = Models(ModelCode='model2',
358+
ModelName='mymodel',
359+
ModelDescription='my test model2')
343360
# create converter (expected: record inserted)
344-
m1 = setup.odmcreate.createModel(code='converter',
345-
name='mymodel',
346-
description='my test converter')
361+
m1 = setup.odmcreate.createModel(mod1)
347362
# create converter (expected: record inserted)
348-
m2 = setup.odmcreate.createModel(code='model2',
349-
name='mymodel2',
350-
description='my test model2')
363+
m2 = setup.odmcreate.createModel(mod2)
351364

352365
# create related records
353366
setup.odmcreate.createRelatedModel(modelid=m1.ModelID,

tests/test_odm2/test_readservice.py

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
from __future__ import (absolute_import, division, print_function)
2+
13
import pytest
24
import datetime
35
from os.path import *
@@ -59,7 +61,7 @@ def build_db(self):
5961
try:
6062
db.engine.execute(line + ');')
6163
except Exception as e:
62-
print e
64+
print(e)
6365

6466
self.reader = ReadODM2(db)
6567
self.engine= db.engine
@@ -173,7 +175,7 @@ def test_getRelatedModelsByCode(self):
173175

174176
assert resapi is not None
175177
assert len(resapi) > 0
176-
print resapi[0].ModelCode
178+
print(resapi[0].ModelCode)
177179
assert resapi[0].ModelCode == 'swat'
178180
# assert resapi[0].RelatedModelObj.ModelCode == 'swmm'
179181
# test converter code that doesn't exist
@@ -183,7 +185,7 @@ def test_getRelatedModelsByCode(self):
183185
assert len(resapi) == 0
184186

185187
# test invalid argument
186-
resapi = self.reader.getRelatedModels(code = models.ActionBy)
188+
resapi = self.reader.getRelatedModels(code = models.ActionBy().ActionID)
187189
assert resapi is None
188190

189191

@@ -213,7 +215,7 @@ def test_getAllResults(self):
213215

214216
# get all results from the database
215217
res = self.engine.execute('SELECT * FROM Results').fetchall()
216-
print res
218+
print(res)
217219
# get all results using the api
218220
resapi = self.reader.getResults()
219221

@@ -297,7 +299,7 @@ def test_getResultsBySimulationID(self):
297299
'where s.SimulationID = 1').first()
298300
assert len(res) > 0
299301
res = rawSql2Alchemy(res, models.Results)
300-
print res
302+
print(res)
301303

302304
# get simulation by id using the api
303305
# resapi = self.reader.getResultsBySimulationID(simulation.SimulationID)

0 commit comments

Comments
 (0)