server/test/unittest_ssplanner.py
changeset 0 b97547f5f1fa
child 47 54087a269bdd
equal deleted inserted replaced
-1:000000000000 0:b97547f5f1fa
       
     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()