web/test/unittest_facet.py
branchstable
changeset 7874 be04706eacc9
parent 7768 bd44f506ca86
child 8023 047e62cddee0
--- a/web/test/unittest_facet.py	Tue Sep 27 14:57:41 2011 +0200
+++ b/web/test/unittest_facet.py	Tue Sep 27 16:04:30 2011 +0200
@@ -197,13 +197,12 @@
 
     def test_rql_path_eid(self):
         req, rset, rqlst, filtered_variable = self.prepare_rqlst()
-        facet.RQLPathFacet.path = [('X created_by U'), ('U owned_by O'), ('O login OL')]
-        f = facet.RQLPathFacet(req, rset=rset,
-                               select=rqlst.children[0],
-                               filtered_variable=filtered_variable)
-        f.filter_variable = 'O'
-        f.label_variable = 'OL'
-
+        class RPF(facet.RQLPathFacet):
+            path = [('X created_by U'), ('U owned_by O'), ('O login OL')]
+            filter_variable = 'O'
+            label_variable = 'OL'
+        f = RPF(req, rset=rset, select=rqlst.children[0],
+                filtered_variable=filtered_variable)
         self.assertEqual(f.vocabulary(), [(u'admin', self.user().eid),])
         # ensure rqlst is left unmodified
         self.assertEqual(rqlst.as_string(), 'DISTINCT Any  WHERE X is CWUser')
@@ -219,18 +218,26 @@
         self.assertEqual(f.select.as_string(),
                          "DISTINCT Any  WHERE X is CWUser, X created_by F, F owned_by G, G eid 1")
 
+    def test_rql_path_eid_no_label(self):
+        req, rset, rqlst, filtered_variable = self.prepare_rqlst()
+        class RPF(facet.RQLPathFacet):
+            path = [('X created_by U'), ('U owned_by O'), ('O login OL')]
+            filter_variable = 'O'
+        f = RPF(req, rset=rset, select=rqlst.children[0],
+                filtered_variable=filtered_variable)
+        self.assertEqual(f.vocabulary(), [(str(self.user().eid), self.user().eid),])
+
     def test_rql_path_attr(self):
         req, rset, rqlst, filtered_variable = self.prepare_rqlst()
-        facet.RQLPathFacet.path = [('X created_by U'), ('U owned_by O'), ('O login OL')]
-        f = facet.RQLPathFacet(req, rset=rset,
-                               select=rqlst.children[0],
-                               filtered_variable=filtered_variable)
-        f.filter_variable = 'OL'
+        class RPF(facet.RQLPathFacet):
+            path = [('X created_by U'), ('U owned_by O'), ('O login OL')]
+            filter_variable = 'OL'
+        f = RPF(req, rset=rset, select=rqlst.children[0],
+                filtered_variable=filtered_variable)
 
         self.assertEqual(f.vocabulary(), [(u'admin', 'admin'),])
         # ensure rqlst is left unmodified
         self.assertEqual(rqlst.as_string(), 'DISTINCT Any  WHERE X is CWUser')
-        #rqlst = rset.syntax_tree()
         self.assertEqual(f.possible_values(), ['admin',])
         # ensure rqlst is left unmodified
         self.assertEqual(rqlst.as_string(), 'DISTINCT Any  WHERE X is CWUser')
@@ -241,6 +248,16 @@
         self.assertEqual(f.select.as_string(),
                          "DISTINCT Any  WHERE X is CWUser, X created_by G, G owned_by H, H login 'admin'")
 
+    def test_rql_path_check_filter_label_variable(self):
+        req, rset, rqlst, filtered_variable = self.prepareg_aggregat_rqlst()
+        class RPF(facet.RQLPathFacet):
+            path = [('X created_by U'), ('U owned_by O'), ('O login OL')]
+            filter_variable = 'OL'
+            label_variable = 'OL'
+        self.assertRaises(AssertionError, RPF, req, rset=rset,
+                          select=rqlst.children[0],
+                          filtered_variable=filtered_variable)
+
     def prepareg_aggregat_rqlst(self):
         return self.prepare_rqlst(
             'Any 1, COUNT(X) WHERE X is CWUser, X creation_date XD, '
@@ -265,11 +282,11 @@
 
     def test_aggregat_query_rql_path(self):
         req, rset, rqlst, filtered_variable = self.prepareg_aggregat_rqlst()
-        facet.RQLPathFacet.path = [('X created_by U'), ('U owned_by O'), ('O login OL')]
-        f = facet.RQLPathFacet(req, rset=rset,
-                               select=rqlst.children[0],
-                               filtered_variable=filtered_variable)
-        f.filter_variable = 'OL'
+        class RPF(facet.RQLPathFacet):
+            path = [('X created_by U'), ('U owned_by O'), ('O login OL')]
+            filter_variable = 'OL'
+        f = RPF(req, rset=rset, select=rqlst.children[0],
+                filtered_variable=filtered_variable)
         self.assertEqual(f.vocabulary(), [(u'admin', u'admin')])
         self.assertEqual(f.possible_values(), ['admin'])
         req.form[f.__regid__] = 'admin'