From d9fed9b2e4a5790a731777b6aa369d5c060d2224 Mon Sep 17 00:00:00 2001
From: Daniel <d.hornung@indiscale.com>
Date: Mon, 11 Mar 2024 09:38:12 +0100
Subject: [PATCH] ENH: Better error messages.

---
 .../table_json_conversion/table_generator.py                | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/src/caosadvancedtools/table_json_conversion/table_generator.py b/src/caosadvancedtools/table_json_conversion/table_generator.py
index 4e213b83..d769c679 100644
--- a/src/caosadvancedtools/table_json_conversion/table_generator.py
+++ b/src/caosadvancedtools/table_json_conversion/table_generator.py
@@ -204,11 +204,15 @@ class TableTemplateGenerator(ABC):
                 # and add the foreign keys that are necessary up to this point
                 for array_path in array_paths:
                     foreigns = self._get_foreign_keys(foreign_keys, array_path)
+                    if isinstance(foreigns, str):
+                        raise ValueError("Foreign keys must be a list of strings, but a single "
+                                         "string was given:\n"
+                                         f"{array_path} -> {foreigns}")
                     for foreign in foreigns:
                         internal_key = p2s(array_path + [foreign])
                         if internal_key in sheets[sheetname]:
                             raise ValueError("The schema would lead to two columns with the same "
-                                             f"name, which is forbidden: {internal_key}")
+                                             f"name, which is forbidden:\n{foreign} -> {internal_key}")
                         ref_sheet = p2s(array_path)
                         sheets[sheetname][internal_key] = (
                             ColumnType.FOREIGN, f"see sheet '{ref_sheet}'", array_path + [foreign])
-- 
GitLab