Skip to content

Commit bc9321a

Browse files
committed
fix queues and tests
1 parent d8f4738 commit bc9321a

File tree

2 files changed

+27
-37
lines changed

2 files changed

+27
-37
lines changed

qiita_db/analysis.py

Lines changed: 17 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -118,39 +118,36 @@ def create(cls, owner, name, description, parent=None, from_default=False):
118118
"""
119119
queue = "create_analysis"
120120
conn_handler = SQLConnectionHandler()
121+
conn_handler.create_queue(queue)
121122
# TODO after demo: if exists()
122123

123124
if from_default:
124125
# insert analysis and move samples into that new analysis
125126
dflt_id = owner.default_analysis
126-
sql = \
127-
""" DO $do$
128-
DECLARE
129-
aid = varchar;
130-
BEGIN
131-
INSERT INTO qiita.{0}
127+
sql = """INSERT INTO qiita.{0}
132128
(email, name, description, analysis_status_id)
133129
VALUES (%s, %s, %s, 3)
134-
RETURNING analysis_id INTO aid;
135-
UPDATE qiita.analysis_sample SET analysis_id = aid
136-
WHERE analysis_id = {1};
137-
RETURN aid;
138-
END $do$""".format(cls._table, dflt_id)
139-
a_id = conn_handler.add_to_queue(
140-
queue, sql, (owner.id, name, description))
130+
RETURNING analysis_id""".format(cls._table)
131+
conn_handler.add_to_queue(queue, sql, (owner.id, name,
132+
description))
133+
sql = """UPDATE qiita.analysis_sample
134+
SET analysis_id = %s
135+
WHERE analysis_id = %s RETURNING %s"""
136+
conn_handler.add_to_queue(queue, sql, ['{0}', dflt_id, '{0}'])
141137
else:
142138
# insert analysis information into table as "in construction"
143-
sql = ("""INSERT INTO qiita.{0} (email, name, description, "
144-
"analysis_status_id) VALUES (%s, %s, %s, 1) "
145-
"RETURNING analysis_id""".format(cls._table))
146-
a_id = conn_handler.add_to_queue(
147-
queue, sql, (owner.id, name, description))[0]
139+
sql = """INSERT INTO qiita.{0}
140+
(email, name, description, analysis_status_id)
141+
VALUES (%s, %s, %s, 1)
142+
RETURNING analysis_id""".format(cls._table)
143+
conn_handler.add_to_queue(
144+
queue, sql, (owner.id, name, description))
148145

149146
# add parent if necessary
150147
if parent:
151148
sql = ("INSERT INTO qiita.analysis_chain (parent_id, child_id) "
152-
"VALUES (%s, {0}) RETURNING child_id")
153-
conn_handler.add_to_queue(queue, sql, [parent.id])
149+
"VALUES (%s, %s) RETURNING child_id")
150+
conn_handler.add_to_queue(queue, sql, [parent.id, '{0}'])
154151

155152
a_id = conn_handler.execute_queue(queue)[0]
156153
return cls(a_id)

qiita_db/test/test_analysis.py

Lines changed: 10 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -124,30 +124,23 @@ def test_create_parent(self):
124124
self.assertEqual(obs, [[1, new_id]])
125125

126126
def test_create_from_default(self):
127-
sql = "SELECT EXTRACT(EPOCH FROM NOW())"
128-
time1 = float(self.conn_handler.execute_fetchall(sql)[0][0])
127+
new_id = get_count("qiita.analysis") + 1
129128
owner = User("test@foo.bar")
130129
new = Analysis.create(owner, "newAnalysis",
131130
"A New Analysis", from_default=True)
132-
self.assertEqual(new.id, 3)
133-
sql = ("SELECT analysis_id, email, name, description, "
134-
"analysis_status_id, pmid, EXTRACT(EPOCH FROM timestamp) "
135-
"FROM qiita.analysis WHERE analysis_id = 3")
136-
obs = self.conn_handler.execute_fetchall(sql)
137-
self.assertEqual(obs[0][:-1], [3, 'admin@foo.bar', 'newAnalysis',
138-
'A New Analysis', 3, None])
139-
self.assertTrue(time1 < float(obs[0][-1]))
131+
self.assertEqual(new.id, new_id)
132+
140133
# Make sure samples were transfered properly
141-
sql = "SELECT * FROM analysis_sample WHERE analysis_id = %s"
134+
sql = "SELECT * FROM qiita.analysis_sample WHERE analysis_id = %s"
142135
obs = self.conn_handler.execute_fetchall(sql, [owner.default_analysis])
143136
exp = []
144137
self.assertEqual(obs, exp)
145-
sql = "SELECT * FROM analysis_sample WHERE analysis_id = 3"
146-
obs = self.conn_handler.execute_fetchall(sql)
147-
exp = [[3, 1, '1.SKD8.640184'],
148-
[3, 1, '1.SKB7.640196'],
149-
[3, 1, '1.SKM9.640192'],
150-
[3, 1, '1.SKM4.640180']]
138+
sql = "SELECT * FROM qiita.analysis_sample WHERE analysis_id = %s"
139+
obs = self.conn_handler.execute_fetchall(sql, [new_id])
140+
exp = [[new_id, 1, '1.SKD8.640184'],
141+
[new_id, 1, '1.SKB7.640196'],
142+
[new_id, 1, '1.SKM9.640192'],
143+
[new_id, 1, '1.SKM4.640180']]
151144
self.assertEqual(obs, exp)
152145

153146
def test_retrieve_owner(self):

0 commit comments

Comments
 (0)