cubicweb/server/test/unittest_querier.py
changeset 12931 6eae252361e5
parent 12567 26744ad37953
--- a/cubicweb/server/test/unittest_querier.py	Thu Mar 12 15:38:51 2020 +0100
+++ b/cubicweb/server/test/unittest_querier.py	Fri Mar 20 14:34:07 2020 +0100
@@ -1626,7 +1626,6 @@
                              'X in_state S, S name SN')
         self.assertEqual(rset.rows, [[peid]])
 
-
     def test_nonregr_sql_cache(self):
         # different SQL generated when 'name' is None or not (IS NULL).
         self.assertFalse(self.qexecute('Any X WHERE X is CWEType, X name %(name)s',
@@ -1634,6 +1633,24 @@
         self.assertTrue(self.qexecute('Any X WHERE X is CWEType, X name %(name)s',
                                       {'name': 'CWEType'}))
 
+    def test_variables_in_rset_for_select(self):
+        rset = self.qexecute('Any X WHERE X is CWUser, X eid %(x)s', {'x': self.ueid})
+        self.assertEqual(rset.variables, ['X'])
+
+    def test_only_selected_variables_in_rset(self):
+        rset = self.qexecute('Any X,Y WHERE X is Personne, Y is Personne, '
+                             'X nom XD, Y nom XD, X eid Z, Y eid > Z')
+        # Z is not selected
+        self.assertEqual(rset.variables, ['X', 'Y'])
+
+    def test_no_variables_in_rset(self):
+        rset = self.qexecute('Any COUNT(X) WHERE X is CWUser')
+        self.assertEqual(rset.variables, ['COUNT(X)'])
+
+    def test_mixed_projection_in_rset(self):
+        rset = self.qexecute('Any X,COUNT(X) WHERE X is CWUser')
+        self.assertEqual(rset.variables, ['X', 'COUNT(X)'])
+
 
 class NonRegressionTC(CubicWebTC):