Skip to content

Commit 751d4ad

Browse files
committed
adding delete
1 parent 811b7a7 commit 751d4ad

File tree

2 files changed

+26
-11
lines changed

2 files changed

+26
-11
lines changed

qiita_db/study.py

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -984,16 +984,22 @@ def tags(self, tag_ids):
984984
The tag ids of the study
985985
"""
986986
with qdb.sql_connection.TRN:
987-
sql = """INSERT INTO qiita.per_study_tags (study_tag_id, study_id)
988-
SELECT %s, %s
989-
WHERE
990-
NOT EXISTS (
991-
SELECT study_tag_id, study_id
992-
FROM qiita.per_study_tags
993-
WHERE study_tag_id = %s AND study_id = %s
994-
)"""
995-
sql_args = [[tid, self._id, tid, self._id] for tid in tag_ids]
996-
qdb.sql_connection.TRN.add(sql, sql_args, many=True)
987+
sql = """DELETE FROM qiita.per_study_tags WHERE study_id = %s"""
988+
qdb.sql_connection.TRN.add(sql, [self._id])
989+
qdb.sql_connection.TRN.execute()
990+
991+
if tag_ids:
992+
sql = """INSERT INTO qiita.per_study_tags
993+
(study_tag_id, study_id)
994+
SELECT %s, %s
995+
WHERE
996+
NOT EXISTS (
997+
SELECT study_tag_id, study_id
998+
FROM qiita.per_study_tags
999+
WHERE study_tag_id = %s AND study_id = %s
1000+
)"""
1001+
sql_args = [[tid, self._id, tid, self._id] for tid in tag_ids]
1002+
qdb.sql_connection.TRN.add(sql, sql_args, many=True)
9971003
return qdb.sql_connection.TRN.execute()
9981004

9991005
# --- methods ---

qiita_db/test/test_study.py

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -847,7 +847,16 @@ def test_study_tags(self):
847847
study = qdb.study.Study(1)
848848
study.tags = [tig for tig, tag in obs]
849849
# and checking that everything went fine
850-
self.assertEqual(exp, study.tags)
850+
self.assertEqual(obs, study.tags)
851+
852+
# making sure that everything is overwritten
853+
obs.pop()
854+
study.tags = [tig for tig, tag in obs]
855+
self.assertEqual(obs, study.tags)
856+
857+
# cleaning tags
858+
study.tags = []
859+
self.assertEqual(study.tags, [])
851860

852861

853862
if __name__ == "__main__":

0 commit comments

Comments
 (0)