From b36ee6a6534db46873d08dd8a9a888c4182e3349 Mon Sep 17 00:00:00 2001
From: eliott <eliott.sammier@tetras-libre.fr>
Date: Mon, 5 Aug 2024 14:51:37 +0200
Subject: [PATCH] Check for empty or None variables as well

---
 tetras_extraction/script/src/test.py | 26 ++++++++++++++++++--------
 1 file changed, 18 insertions(+), 8 deletions(-)

diff --git a/tetras_extraction/script/src/test.py b/tetras_extraction/script/src/test.py
index 04982a5e..97fc4e97 100644
--- a/tetras_extraction/script/src/test.py
+++ b/tetras_extraction/script/src/test.py
@@ -21,20 +21,20 @@ class TestObjectCount(unittest.TestCase):
     def runTest(self):
         # Modules
         self.assertCount(
-            """SELECT DISTINCT ?mod WHERE {
-                ?mod a :Module .
+            """SELECT * WHERE {
+                ?subj a :Module .
 
-                ?mod :id ?id .
-                ?mod :index ?index .
-                ?mod :titre ?titre .
+                ?subj :id ?id .
+                ?subj :index ?index .
+                ?subj :titre ?titre .
                 
-                MINUS { ?mod a :SousPartie }
+                MINUS { ?subj a :SousPartie }
                 }""",
             (9, 6, 9 + 6),
         )
         # SousParties
         self.assertCount(
-            """SELECT DISTINCT ?subj WHERE {
+            """SELECT * WHERE {
                 ?subj a :SousPartie .
 
                 ?subj :id ?id .
@@ -45,7 +45,7 @@ class TestObjectCount(unittest.TestCase):
         )
         # Activités
         self.assertCount(
-            """SELECT DISTINCT ?subj WHERE {
+            """SELECT * WHERE {
                 ?subj a :Activite .
 
                 ?subj :id ?id .
@@ -64,6 +64,16 @@ class TestObjectCount(unittest.TestCase):
         """
         res = self.graph.query(query)
         count = len(res)
+        # Check that variables bound to Literals are not empty or None
+        for binding in res.bindings:
+            for var, val in binding.items():
+                if isinstance(val, Literal):
+                    self.assertFalse(
+                        val.eq(Literal("")), f"Empty value: ?{var} = '{val}'"
+                    )
+                    self.assertFalse(
+                        val.eq(Literal("None")), f"None value: ?{var} = '{val}'"
+                    )
 
         versions = ("macao_12", "macao_3", "full")
         try:
-- 
GitLab