diff -r b7484ae2c693 -r 23c1e50ff97b server/test/unittest_rql2sql.py --- a/server/test/unittest_rql2sql.py Wed Sep 22 10:34:20 2010 +0200 +++ b/server/test/unittest_rql2sql.py Wed Sep 22 10:35:34 2010 +0200 @@ -567,6 +567,11 @@ GROUP BY T1.C0,T1.C2 ORDER BY T1.C2'''), + ('Any 1 WHERE X in_group G, X is CWUser', + '''SELECT 1 +FROM in_group_relation AS rel_in_group0'''), + + ] @@ -1466,6 +1471,15 @@ FROM cw_CWUser AS _X WHERE ((CAST(EXTRACT(YEAR from _X.cw_creation_date) AS INTEGER)=2010) OR (_X.cw_creation_date IS NULL))''') + def test_not_no_where(self): + # XXX will check if some in_group relation exists, that's it. + # We can't actually know if we want to check if there are some + # X without in_group relation, or some G without it. + self._check('Any 1 WHERE NOT X in_group G, X is CWUser', + '''SELECT 1 +WHERE NOT (EXISTS(SELECT 1 FROM in_group_relation AS rel_in_group0))''') + + class SqliteSQLGeneratorTC(PostgresSQLGeneratorTC): backend = 'sqlite' @@ -1686,6 +1700,13 @@ WHERE ((EXTRACT(YEAR from _X.cw_creation_date)=2010) OR (_X.cw_creation_date IS NULL))''') + def test_not_no_where(self): + self._check('Any 1 WHERE NOT X in_group G, X is CWUser', + '''SELECT 1 +FROM (SELECT 1) AS _T +WHERE NOT (EXISTS(SELECT 1 FROM in_group_relation AS rel_in_group0))''') + + class removeUnsusedSolutionsTC(TestCase): def test_invariant_not_varying(self): rqlst = mock_object(defined_vars={})