From 9b5b36e94006fc716dfd402fbc08dbf45400ffc2 Mon Sep 17 00:00:00 2001
From: Marko Mecina <marko.mecina@univie.ac.at>
Date: Sat, 3 Dec 2022 17:52:31 +0100
Subject: [PATCH] fix loading datapool items from MIB for TST

---
 Ccs/ccs_function_lib.py  |  7 ++++---
 Tst/tst/data_pool_tab.py | 32 +++++++++++++++++++++-----------
 2 files changed, 25 insertions(+), 14 deletions(-)

diff --git a/Ccs/ccs_function_lib.py b/Ccs/ccs_function_lib.py
index 05b7344..00c53a4 100644
--- a/Ccs/ccs_function_lib.py
+++ b/Ccs/ccs_function_lib.py
@@ -3586,7 +3586,7 @@ def get_data_pool_items(pcf_descr=None, src_file=None, as_dict=False):
                 logger.warning('Data pool items were rejected because of unknown format ({})'.format(len(data_pool) - len(data_pool_dict)))
             return data_pool_dict
         else:
-            return data_pool
+            return data_pool, src_file
 
     elif pcf_descr is None and not src_file:
         data_pool = scoped_session_idb.execute('SELECT pcf_pid, pcf_descr, pcf_ptc, pcf_pfc '
@@ -3599,7 +3599,7 @@ def get_data_pool_items(pcf_descr=None, src_file=None, as_dict=False):
     scoped_session_idb.close()
 
     if not as_dict:
-        return data_pool
+        return data_pool, src_file
 
     data_pool_dict = {int(row[0]): {'descr': row[1], 'fmt': ptt(row[2], row[3])} for row in data_pool}
 
@@ -5682,7 +5682,8 @@ try:
     else:
         raise ValueError
 except (FileNotFoundError, ValueError, confignator.config.configparser.NoOptionError):
-    DP_ITEMS_SRC_FILE = None
+    if 'DP_ITEMS_SRC_FILE' not in locals():
+        DP_ITEMS_SRC_FILE = None
     logger.warning('Could not load data pool from file: {}. Using MIB instead.'.format(DP_ITEMS_SRC_FILE))
     _dp_items = get_data_pool_items(as_dict=True)
 finally:
diff --git a/Tst/tst/data_pool_tab.py b/Tst/tst/data_pool_tab.py
index ee92003..829fb66 100644
--- a/Tst/tst/data_pool_tab.py
+++ b/Tst/tst/data_pool_tab.py
@@ -18,21 +18,26 @@ DP_ITEMS_SRC_FILE = cfl.DP_ITEMS_SRC_FILE
 
 def reload_dp_data():
     global DP_ITEMS_SRC_FILE
-    global dictionary_of_data_pool
+    # global dictionary_of_data_pool
     global list_of_data_pool
     global data_pool_sublist
 
     try:
-        dictionary_of_data_pool = cfl.get_data_pool_items(src_file=DP_ITEMS_SRC_FILE)
+        list_of_data_pool, _src = cfl.get_data_pool_items(src_file=DP_ITEMS_SRC_FILE)
     except (FileNotFoundError, ValueError):
         logger.warning('Could not load data pool from file: {}. Using MIB instead.'.format(DP_ITEMS_SRC_FILE))
-        dictionary_of_data_pool = cfl.get_data_pool_items()
+        list_of_data_pool, _src = cfl.get_data_pool_items()
 
-    if not isinstance(dictionary_of_data_pool, list):
-        list_of_data_pool = list(dictionary_of_data_pool.keys())
+    # check if DP items are from MIB or CSV
+    if not _src:
         data_pool_sublist = get_data_pool_sublist()
     else:
-        data_pool_sublist = dictionary_of_data_pool
+        data_pool_sublist = list_of_data_pool
+
+    # if not isinstance(list_of_data_pool, list):
+    #     data_pool_sublist = get_data_pool_sublist()
+    # else:
+    #     data_pool_sublist = dictionary_of_data_pool
 
 
 def get_data_pool_sublist():
@@ -54,16 +59,21 @@ def get_data_pool_sublist():
 
 data_pool_sublist = []
 try:
-    dictionary_of_data_pool = cfl.get_data_pool_items(src_file=DP_ITEMS_SRC_FILE)
+    list_of_data_pool, _src = cfl.get_data_pool_items(src_file=DP_ITEMS_SRC_FILE)
 except (FileNotFoundError, ValueError):
     logger.warning('Could not load data pool from file: {}. Using MIB instead.'.format(DP_ITEMS_SRC_FILE))
-    dictionary_of_data_pool = cfl.get_data_pool_items()
+    list_of_data_pool, _src = cfl.get_data_pool_items()
 
-if not isinstance(dictionary_of_data_pool, list):
-    list_of_data_pool = list(dictionary_of_data_pool.keys())
+# check if DP items are from MIB or CSV
+if not _src:
     data_pool_sublist = get_data_pool_sublist()
 else:
-    data_pool_sublist = dictionary_of_data_pool
+    data_pool_sublist = list_of_data_pool
+
+# if not isinstance(list_of_data_pool, list):
+#     data_pool_sublist = get_data_pool_sublist()
+# else:
+#     data_pool_sublist = list_of_data_pool
 
 
 class DataPoolTable(Gtk.Grid):
-- 
GitLab