about summary refs log tree commit diff
diff options
context:
space:
mode:
authorFrederick Muriuki Muriithi2022-09-12 06:45:59 +0300
committerFrederick Muriuki Muriithi2022-09-12 06:45:59 +0300
commit18f4682a27630bd81eb0b1514476c2cf0f663a63 (patch)
tree38693342340285329cc1d8bdd2d9c9c4a20982d3
parent228a5545adb47fee0de22e55536ee612aab9be66 (diff)
downloadgenenetwork2-18f4682a27630bd81eb0b1514476c2cf0f663a63.tar.gz
Check db resultset before indexing into it
The assumption that the resultset will never be empty was leading to a
lot of errors.
-rw-r--r--wqflask/base/data_set.py15
-rw-r--r--wqflask/db/webqtlDatabaseFunction.py5
2 files changed, 13 insertions, 7 deletions
diff --git a/wqflask/base/data_set.py b/wqflask/base/data_set.py
index dda5e8f9..47c03b06 100644
--- a/wqflask/base/data_set.py
+++ b/wqflask/base/data_set.py
@@ -328,8 +328,11 @@ class DatasetGroup:
                     "InbredSet.InbredSetCode "
                     "FROM InbredSet WHERE Name = %s",
                     (dataset.name,))
-            (self.name, self.id,
-             self.genetic_type, self.code) = cursor.fetchone()
+            results = cursor.fetchone()
+            if results:
+                (self.name, self.id, self.genetic_type, self.code) = results
+            else:
+                self.name = name or dataset.name
         if self.name == 'BXD300':
             self.name = "BXD"
 
@@ -353,7 +356,9 @@ class DatasetGroup:
                 "SELECT MappingMethodId FROM "
                 "InbredSet WHERE Name= %s",
                 (self.name,))
-            mapping_id = cursor.fetchone()[0]
+            results = cursor.fetchone()
+            if results and results[0]:
+                mapping_id = results[0]
         if mapping_id == "1":
             mapping_names = ["GEMMA", "QTLReaper", "R/qtl"]
         elif mapping_id == "2":
@@ -1227,8 +1232,8 @@ def geno_mrna_confidentiality(ob):
             f"AuthorisedUsers FROM {ob.type}Freeze WHERE Name = %s",
             (ob.name,)
         )
-        result = cursor.fetchall()[0]
-        if result:
+        result = cursor.fetchall()
+        if len(result) > 0 and result[0]:
             return True
 
 
diff --git a/wqflask/db/webqtlDatabaseFunction.py b/wqflask/db/webqtlDatabaseFunction.py
index 122c546f..878792b4 100644
--- a/wqflask/db/webqtlDatabaseFunction.py
+++ b/wqflask/db/webqtlDatabaseFunction.py
@@ -31,8 +31,9 @@ def retrieve_species(group):
         cursor.execute(
             "SELECT Species.Name FROM Species, InbredSet WHERE InbredSet.Name = %s AND InbredSet.SpeciesId = Species.Id",
             (group,))
-        return cursor.fetchone()[0]
-    return result
+        results = cursor.fetchone()
+        if results and results[0]:
+            return results[0]
 
 
 def retrieve_species_id(group):