|
1 from cubicweb.devtools import init_test_database |
|
2 from cubicweb.devtools.repotest import BasePlannerTC, test_plan |
|
3 from cubicweb.server.ssplanner import SSPlanner |
|
4 |
|
5 # keep cnx so it's not garbage collected and the associated session is closed |
|
6 repo, cnx = init_test_database('sqlite') |
|
7 |
|
8 class SSPlannerTC(BasePlannerTC): |
|
9 repo = repo |
|
10 _test = test_plan |
|
11 |
|
12 def setUp(self): |
|
13 BasePlannerTC.setUp(self) |
|
14 self.planner = SSPlanner(self.o.schema, self.o._rqlhelper) |
|
15 self.system = self.o._repo.system_source |
|
16 |
|
17 def tearDown(self): |
|
18 BasePlannerTC.tearDown(self) |
|
19 |
|
20 def test_ordered_ambigous_sol(self): |
|
21 self._test('Any XN ORDERBY XN WHERE X name XN', |
|
22 [('OneFetchStep', [('Any XN ORDERBY XN WHERE X name XN', |
|
23 [{'X': 'Basket', 'XN': 'String'}, |
|
24 {'X': 'EConstraintType', 'XN': 'String'}, |
|
25 {'X': 'EEType', 'XN': 'String'}, |
|
26 {'X': 'EGroup', 'XN': 'String'}, |
|
27 {'X': 'EPermission', 'XN': 'String'}, |
|
28 {'X': 'ERType', 'XN': 'String'}, |
|
29 {'X': 'File', 'XN': 'String'}, |
|
30 {'X': 'Folder', 'XN': 'String'}, |
|
31 {'X': 'Image', 'XN': 'String'}, |
|
32 {'X': 'State', 'XN': 'String'}, |
|
33 {'X': 'Tag', u'XN': 'String'}, |
|
34 {'X': 'Transition', 'XN': 'String'}])], |
|
35 None, None, |
|
36 [self.system], None, [])]) |
|
37 |
|
38 def test_groupeded_ambigous_sol(self): |
|
39 self._test('Any XN,COUNT(X) GROUPBY XN WHERE X name XN', |
|
40 [('OneFetchStep', [('Any XN,COUNT(X) GROUPBY XN WHERE X name XN', |
|
41 [{'X': 'Basket', 'XN': 'String'}, |
|
42 {'X': 'EConstraintType', 'XN': 'String'}, |
|
43 {'X': 'EEType', 'XN': 'String'}, |
|
44 {'X': 'EGroup', 'XN': 'String'}, |
|
45 {'X': 'EPermission', 'XN': 'String'}, |
|
46 {'X': 'ERType', 'XN': 'String'}, |
|
47 {'X': 'File', 'XN': 'String'}, |
|
48 {'X': 'Folder', 'XN': 'String'}, |
|
49 {'X': 'Image', 'XN': 'String'}, |
|
50 {'X': 'State', 'XN': 'String'}, |
|
51 {'X': 'Tag', u'XN': 'String'}, |
|
52 {'X': 'Transition', 'XN': 'String'}])], |
|
53 None, None, |
|
54 [self.system], None, [])]) |
|
55 |
|
56 if __name__ == '__main__': |
|
57 from logilab.common.testlib import unittest_main |
|
58 unittest_main() |