1- __author__ = 'tony castronova'
2- __author__ = 'david valentine'
1+ from __future__ import (absolute_import , division , print_function )
32
43#import unittest
54
87from odm2api .ODM2 .services .createService import CreateODM2
98from odm2api .ODM2 .services .updateService import UpdateODM2
109from 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
1316from tests import test_connection as testConnection
1417import pytest
18+
19+
20+ __author__ = ['tony castronova' , 'david valentine' ]
21+
22+
1523xfail = pytest .mark .xfail
1624skipif = 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
153161def 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-
192196def 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
216223def 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
339350def 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 ,
0 commit comments