Skip to content

Commit e31fedd

Browse files
author
stephanie
committed
merge qualid
2 parents 5529155 + ccfd530 commit e31fedd

File tree

8 files changed

+65
-60
lines changed

8 files changed

+65
-60
lines changed

odmtools/controller/frmAddPoints.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -242,7 +242,9 @@ def parseTable(self):
242242
if i.offSetType != "NULL":
243243
row[6] = i.offSetType
244244
if i.qualifierCode != "NULL":
245-
row[8] = i.qualifierCode
245+
code = i.qualifierCode.split(':')[0]
246+
q=self.recordService._edit_service.memDB.series_service.get_qualifier_by_code(code=code)
247+
row[8] = q.id
246248
if i.labSampleCode != "NULL":
247249
row[9] = i.labSampleCode
248250

odmtools/controller/logicCellEdit.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ def __init__(self, parent, serviceManager, recordService):
3434
self.censorCodeChoices = [NULL] + [x.term for x in self.cv_service.get_censor_code_cvs()]
3535
self.labSampleChoices = [NULL] + labChoices.keys()
3636

37-
self.qualifierChoices = OrderedDict((x.code + '-' + x.description, x.id)
37+
self.qualifierChoices = OrderedDict((x.code + ':' + x.description, x.id)
3838
for x in self.series_service.get_all_qualifiers() if x.code and x.description)
3939
self.qualifierCodeChoices = [NULL] + self.qualifierChoices.keys() + [NEW]
4040

@@ -375,7 +375,7 @@ def cbHandler(event):
375375
#dlg.Destroy()
376376

377377
try:
378-
self.qualifierChoices = OrderedDict((x.code + '-' + x.description, x.id)
378+
self.qualifierChoices = OrderedDict((x.code + ':' + x.description, x.id)
379379
for x in self.cv_service.get_all_qualifiers() if x.code and x.description)
380380
self.qualifierCodeChoices = [NULL] + self.qualifierChoices.keys() + [NEW]
381381
except:

odmtools/odmdata/memory_database.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,11 @@ def rollback(self):
9090
# self.mem_service._session_factory.engine.connect().connection.rollback()
9191
#self.updateDF()
9292

93+
#TODO is there a way to do a single rollback
94+
def rollbacksingle(self):
95+
pass
96+
97+
9398
def update(self, updates):
9499
'''
95100
updates : list of dictionary that contains 2 items, id and value

odmtools/odmservices/cv_service.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,6 @@ def get_samples(self):
3636
result = self._edit_session.query(Sample).order_by(Sample.lab_sample_code).all()
3737
return result
3838

39-
40-
4139
def get_site_type_cvs(self):
4240
result = self._edit_session.query(SiteTypeCV).order_by(SiteTypeCV.term).all()
4341
return result

odmtools/odmservices/series_service.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -191,6 +191,14 @@ def get_all_qualifiers(self):
191191
result = self._edit_session.query(Qualifier).order_by(Qualifier.code).all()
192192
return result
193193

194+
def get_qualifier_by_code(self, code):
195+
"""
196+
197+
:return: Qualifiers
198+
"""
199+
result = self._edit_session.query(Qualifier).filter(Qualifier.code==code).first()
200+
return result
201+
194202
def get_qualifiers_by_series_id(self, series_id):
195203
"""
196204

odmtools/odmservices/service_manager.py

Lines changed: 33 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -21,31 +21,34 @@
2121
logger =logging.getLogger('main')
2222

2323
class ServiceManager():
24-
def __init__(self, debug=False):
24+
def __init__(self, debug=False, conn_dict = None):
2525
self.debug = debug
2626
f = self._get_file('r')
2727
self._conn_dicts = []
2828
self.version = 0
2929
self._connection_format = "%s+%s://%s:%s@%s/%s"
3030

3131
# Read all lines (connections) in the connection.cfg file
32-
while True:
33-
line = f.readline()
34-
if not line:
35-
break
36-
else:
37-
line = line.split()
38-
#logger.debug(line)
39-
40-
if len(line) >= 5:
41-
line_dict = {}
42-
43-
line_dict['engine'] = line[0]
44-
line_dict['user'] = line[1]
45-
line_dict['password'] = line[2]
46-
line_dict['address'] = line[3]
47-
line_dict['db'] = line[4]
48-
self._conn_dicts.append(line_dict)
32+
if conn_dict is None:
33+
while True:
34+
line = f.readline()
35+
if not line:
36+
break
37+
else:
38+
line = line.split()
39+
#logger.debug(line)
40+
41+
if len(line) >= 5:
42+
line_dict = {}
43+
44+
line_dict['engine'] = line[0]
45+
line_dict['user'] = line[1]
46+
line_dict['password'] = line[2]
47+
line_dict['address'] = line[3]
48+
line_dict['db'] = line[4]
49+
self._conn_dicts.append(line_dict)
50+
else:
51+
self._conn_dicts.append(conn_dict)
4952

5053
if len(self._conn_dicts) is not 0:
5154
# The current connection defaults to the most recent (i.e. the last written to the file)
@@ -152,7 +155,7 @@ def get_cv_service(self):
152155
return CVService(conn_string, self.debug)
153156

154157
def get_edit_service(self, series_id, connection):
155-
158+
156159
return EditService(series_id, connection=connection, debug=self.debug)
157160

158161
def get_record_service(self, script, series_id, connection):
@@ -197,6 +200,10 @@ def _build_connection_string(self, conn_dict):
197200
# (conn_dict['address'], conn_dict['user'], conn_dict['password'],conn_dict['db'],
198201
# ))
199202
conn_string = 'mssql+pyodbc:///?odbc_connect={}'.format(quoted)
203+
204+
elif conn_dict['engine']=='sqlite':
205+
connformat = "%s:///%s"
206+
conn_string = connformat%(conn_dict['engine'], conn_dict['address'])
200207
else:
201208
if conn_dict['engine'] == 'mssql':
202209
driver = "pyodbc"
@@ -217,12 +224,19 @@ def _build_connection_string(self, conn_dict):
217224
driver = "None"
218225
conn_string = self.constringBuilder(conn_dict, driver)
219226
<<<<<<< HEAD
227+
<<<<<<< HEAD
220228

221229
=======
222230
>>>>>>> logging
223231

224232
# print "******", conn_string
225233
return conn_string
234+
=======
235+
236+
# print "******", conn_string
237+
return conn_string
238+
239+
>>>>>>> qualid
226240

227241
def constringBuilder(self, conn_dict, driver):
228242
if conn_dict['password'] is None or not conn_dict['password']:

tests/test_odmdata/test_FreeTDS.py

Lines changed: 3 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111

1212
class TestFreeTDS:
1313
def setup(self):
14-
<<<<<<< HEAD
14+
1515

1616
#run this setup if the current os is mac or linux
1717
if sys.platform != 'win32':
@@ -40,38 +40,6 @@ def setup(self):
4040
#
4141
# def test_connection(self):
4242
# pass
43-
=======
44-
# connection string
45-
46-
# create engine
47-
#quoted = urllib.quote_plus('DRIVER={FreeTDS};Server=iutahqc.uwrl.usu.edu;Database=iUTAH_Logan_OD;UID=qc;PWD=iUTAH123!!;TDS_Version=8.0;Port=1433;')
48-
quoted = urllib.quote_plus('DRIVER={FreeTDS};DSN=iutahqc;UID=qc;PWD=iUTAH123!!;')
49-
engine = sqlalchemy.create_engine('mssql+pyodbc:///?odbc_connect={}'.format(quoted))
50-
# conn = engine.connect()
51-
# q = conn.execute("select * from variables")
52-
print "engine:", engine
53-
assert engine
54-
Session = sessionmaker(bind=engine)
55-
assert Session
56-
session = Session()
57-
assert session
58-
q= session.query(variable.Variable).all()
59-
print "q:", type(q), dir(q)
60-
for i in q:
61-
print i
62-
#conn.close()
63-
q= session.query(series.Series).all()
64-
for i in q[:10]:
65-
print i
66-
assert q
67-
print engine
6843

69-
70-
<<<<<<< HEAD
71-
# def test_connection(self):
72-
# pass
73-
=======
74-
def test_connection(self):
75-
pass
76-
>>>>>>> Beta_1.2.4
77-
>>>>>>> logging
44+
45+

tests/test_odmservices/test_series_service.py

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,15 @@ def test_create_qualifier(self):
7070

7171
assert qual.id is not None
7272

73+
def test_get_qualifier_by_code(self):
74+
assert self.series_service.get_all_qualifiers() == []
75+
76+
qual= self.series_service.create_qualifier("ABC123","This is a test")
77+
78+
db_qual = self.series_service.get_qualifier_by_code("ABC123")
79+
80+
assert qual.id == db_qual.id
81+
7382
def test_get_qualifiers(self):
7483
assert self.series_service.get_all_qualifiers() == []
7584

@@ -393,4 +402,5 @@ def test_variable_exists(self):
393402
assert self.series_service.variable_exists(variable)
394403
variable.code = "00000"
395404
variable.name = "A new name"
396-
assert not self.series_service.variable_exists(variable)
405+
assert not self.series_service.variable_exists(variable)
406+

0 commit comments

Comments
 (0)