server/test/unittest_querier.py
changeset 9956 19a683a0047c
parent 9850 5ef9dd383ae2
child 9990 c84ad981fc4a
equal deleted inserted replaced
9955:60a9cd1b3a4b 9956:19a683a0047c
   171                                            'J': 'Affaire',
   171                                            'J': 'Affaire',
   172                                            'X': 'Affaire',
   172                                            'X': 'Affaire',
   173                                            'ET': 'CWEType', 'ETN': 'String'}])
   173                                            'ET': 'CWEType', 'ETN': 'String'}])
   174             rql, solutions = partrqls[1]
   174             rql, solutions = partrqls[1]
   175             self.assertRQLEqual(rql,  'Any ETN,X WHERE X is ET, ET name ETN, ET is CWEType, '
   175             self.assertRQLEqual(rql,  'Any ETN,X WHERE X is ET, ET name ETN, ET is CWEType, '
   176                                 'X is IN(BaseTransition, Bookmark, CWAttribute, CWCache, CWConstraint, '
   176                                 'X is IN(BaseTransition, Bookmark, CWAttribute, CWCache, CWComputedRType, '
   177                                 '        CWConstraintType, CWEType, CWGroup, CWPermission, CWProperty, CWRType, '
   177                                 '        CWConstraint, CWConstraintType, CWEType, CWGroup, CWPermission, CWProperty, '
   178                                 '        CWRelation, CWSource, CWUniqueTogetherConstraint, CWUser, Card, Comment, '
   178                                 '        CWRType, CWRelation, CWSource, CWUniqueTogetherConstraint, CWUser, Card, '
   179                                 '        Division, Email, EmailPart, EmailThread, ExternalUri, File, Folder, Note, '
   179                                 '        Comment, Division, Email, EmailPart, EmailThread, ExternalUri, File, '
   180                                 '        Old, Personne, RQLExpression, Societe, State, SubDivision, '
   180                                 '        Folder, Note, Old, Personne, RQLExpression, Societe, State, SubDivision, '
   181                                 '        SubWorkflowExitPoint, Tag, TrInfo, Transition, Workflow, WorkflowTransition)')
   181                                 '        SubWorkflowExitPoint, Tag, TrInfo, Transition, Workflow, WorkflowTransition)')
   182             self.assertListEqual(sorted(solutions),
   182             self.assertListEqual(sorted(solutions),
   183                                   sorted([{'X': 'BaseTransition', 'ETN': 'String', 'ET': 'CWEType'},
   183                                   sorted([{'X': 'BaseTransition', 'ETN': 'String', 'ET': 'CWEType'},
   184                                           {'X': 'Bookmark', 'ETN': 'String', 'ET': 'CWEType'},
   184                                           {'X': 'Bookmark', 'ETN': 'String', 'ET': 'CWEType'},
   185                                           {'X': 'Card', 'ETN': 'String', 'ET': 'CWEType'},
   185                                           {'X': 'Card', 'ETN': 'String', 'ET': 'CWEType'},
   186                                           {'X': 'Comment', 'ETN': 'String', 'ET': 'CWEType'},
   186                                           {'X': 'Comment', 'ETN': 'String', 'ET': 'CWEType'},
   187                                           {'X': 'Division', 'ETN': 'String', 'ET': 'CWEType'},
   187                                           {'X': 'Division', 'ETN': 'String', 'ET': 'CWEType'},
   188                                           {'X': 'CWCache', 'ETN': 'String', 'ET': 'CWEType'},
   188                                           {'X': 'CWCache', 'ETN': 'String', 'ET': 'CWEType'},
       
   189                                           {'X': 'CWComputedRType', 'ETN': 'String', 'ET': 'CWEType'},
   189                                           {'X': 'CWConstraint', 'ETN': 'String', 'ET': 'CWEType'},
   190                                           {'X': 'CWConstraint', 'ETN': 'String', 'ET': 'CWEType'},
   190                                           {'X': 'CWConstraintType', 'ETN': 'String', 'ET': 'CWEType'},
   191                                           {'X': 'CWConstraintType', 'ETN': 'String', 'ET': 'CWEType'},
   191                                           {'X': 'CWEType', 'ETN': 'String', 'ET': 'CWEType'},
   192                                           {'X': 'CWEType', 'ETN': 'String', 'ET': 'CWEType'},
   192                                           {'X': 'CWAttribute', 'ETN': 'String', 'ET': 'CWEType'},
   193                                           {'X': 'CWAttribute', 'ETN': 'String', 'ET': 'CWEType'},
   193                                           {'X': 'CWGroup', 'ETN': 'String', 'ET': 'CWEType'},
   194                                           {'X': 'CWGroup', 'ETN': 'String', 'ET': 'CWEType'},
   600     def test_select_aggregat_having(self):
   601     def test_select_aggregat_having(self):
   601         rset = self.qexecute('Any N,COUNT(RDEF) GROUPBY N ORDERBY 2,N '
   602         rset = self.qexecute('Any N,COUNT(RDEF) GROUPBY N ORDERBY 2,N '
   602                             'WHERE RT name N, RDEF relation_type RT '
   603                             'WHERE RT name N, RDEF relation_type RT '
   603                             'HAVING COUNT(RDEF) > 10')
   604                             'HAVING COUNT(RDEF) > 10')
   604         self.assertListEqual(rset.rows,
   605         self.assertListEqual(rset.rows,
   605                               [[u'description_format', 12],
   606                               [[u'description_format', 13],
   606                                [u'description', 13],
   607                                [u'description', 14],
   607                                [u'name', 17],
   608                                [u'name', 18],
   608                                [u'created_by', 43],
   609                                [u'created_by', 44],
   609                                [u'creation_date', 43],
   610                                [u'creation_date', 44],
   610                                [u'cw_source', 43],
   611                                [u'cw_source', 44],
   611                                [u'cwuri', 43],
   612                                [u'cwuri', 44],
   612                                [u'in_basket', 43],
   613                                [u'in_basket', 44],
   613                                [u'is', 43],
   614                                [u'is', 44],
   614                                [u'is_instance_of', 43],
   615                                [u'is_instance_of', 44],
   615                                [u'modification_date', 43],
   616                                [u'modification_date', 44],
   616                                [u'owned_by', 43]])
   617                                [u'owned_by', 44]])
   617 
   618 
   618     def test_select_aggregat_having_dumb(self):
   619     def test_select_aggregat_having_dumb(self):
   619         # dumb but should not raise an error
   620         # dumb but should not raise an error
   620         rset = self.qexecute('Any U,COUNT(X) GROUPBY U '
   621         rset = self.qexecute('Any U,COUNT(X) GROUPBY U '
   621                             'WHERE U eid %(x)s, X owned_by U '
   622                             'WHERE U eid %(x)s, X owned_by U '