14 # FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more |
14 # FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more |
15 # details. |
15 # details. |
16 # |
16 # |
17 # You should have received a copy of the GNU Lesser General Public License along |
17 # You should have received a copy of the GNU Lesser General Public License along |
18 # with CubicWeb. If not, see <http://www.gnu.org/licenses/>. |
18 # with CubicWeb. If not, see <http://www.gnu.org/licenses/>. |
19 """unit tests for modules cubicweb.server.querier and cubicweb.server.querier_steps |
19 """unit tests for modules cubicweb.server.querier and cubicweb.server.ssplanner |
20 """ |
20 """ |
21 from datetime import date, datetime |
21 from datetime import date, datetime |
22 |
22 |
23 from logilab.common.testlib import TestCase, unittest_main |
23 from logilab.common.testlib import TestCase, unittest_main |
24 from rql import BadRQLQuery, RQLSyntaxError |
24 from rql import BadRQLQuery, RQLSyntaxError |
681 self.assertRaises(BadRQLQuery, |
681 self.assertRaises(BadRQLQuery, |
682 self.execute, 'DISTINCT Any S ORDERBY R WHERE A is Affaire, A sujet S, A ref R') |
682 self.execute, 'DISTINCT Any S ORDERBY R WHERE A is Affaire, A sujet S, A ref R') |
683 |
683 |
684 def test_select_ordered_distinct_2(self): |
684 def test_select_ordered_distinct_2(self): |
685 self.execute("INSERT Affaire X: X sujet 'minor'") |
685 self.execute("INSERT Affaire X: X sujet 'minor'") |
686 self.execute("INSERT Affaire X: X sujet 'important'") |
|
687 self.execute("INSERT Affaire X: X sujet 'normal'") |
|
688 self.execute("INSERT Affaire X: X sujet 'zou'") |
686 self.execute("INSERT Affaire X: X sujet 'zou'") |
689 self.execute("INSERT Affaire X: X sujet 'abcd'") |
687 self.execute("INSERT Affaire X: X sujet 'abcd'") |
690 rset = self.execute('DISTINCT Any S ORDERBY S WHERE A is Affaire, A sujet S') |
688 rset = self.execute('DISTINCT Any S ORDERBY S WHERE A is Affaire, A sujet S') |
691 self.assertEqual(rset.rows, [['abcd'], ['important'], ['minor'], ['normal'], ['zou']]) |
689 self.assertEqual(rset.rows, [['abcd'], ['minor'], ['zou']]) |
692 |
690 |
693 def test_select_ordered_distinct_3(self): |
691 def test_select_ordered_distinct_3(self): |
694 rset = self.execute('DISTINCT Any N ORDERBY GROUP_SORT_VALUE(N) WHERE X is CWGroup, X name N') |
692 rset = self.execute('DISTINCT Any N ORDERBY GROUP_SORT_VALUE(N) WHERE X is CWGroup, X name N') |
695 self.assertEqual(rset.rows, [['owners'], ['guests'], ['users'], ['managers']]) |
693 self.assertEqual(rset.rows, [['owners'], ['guests'], ['users'], ['managers']]) |
696 |
694 |