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, CWConstraint, ' |
177 ' CWConstraintType, CWEType, CWGroup, CWPermission, CWProperty, CWRType, ' |
177 ' CWConstraintType, CWEType, CWGroup, CWPermission, CWProperty, CWRType, ' |
178 ' CWRelation, CWSource, CWUniqueTogetherConstraint, CWUser, Card, Comment, ' |
178 ' CWRelation, CWSource, CWUniqueTogetherConstraint, CWUser, Card, Comment, ' |
179 ' Division, Email, EmailPart, EmailThread, ExternalUri, File, Folder, Note, ' |
179 ' Division, Email, EmailPart, EmailThread, ExternalUri, File, Folder, Frozable, ' |
180 ' Old, Personne, RQLExpression, Societe, State, SubDivision, ' |
180 ' 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'}, |
202 {'X': 'EmailPart', 'ETN': 'String', 'ET': 'CWEType'}, |
202 {'X': 'EmailPart', 'ETN': 'String', 'ET': 'CWEType'}, |
203 {'X': 'EmailThread', 'ETN': 'String', 'ET': 'CWEType'}, |
203 {'X': 'EmailThread', 'ETN': 'String', 'ET': 'CWEType'}, |
204 {'X': 'ExternalUri', 'ETN': 'String', 'ET': 'CWEType'}, |
204 {'X': 'ExternalUri', 'ETN': 'String', 'ET': 'CWEType'}, |
205 {'X': 'File', 'ETN': 'String', 'ET': 'CWEType'}, |
205 {'X': 'File', 'ETN': 'String', 'ET': 'CWEType'}, |
206 {'X': 'Folder', 'ETN': 'String', 'ET': 'CWEType'}, |
206 {'X': 'Folder', 'ETN': 'String', 'ET': 'CWEType'}, |
|
207 {'X': 'Frozable', 'ETN': 'String', 'ET': 'CWEType'}, |
207 {'X': 'Note', 'ETN': 'String', 'ET': 'CWEType'}, |
208 {'X': 'Note', 'ETN': 'String', 'ET': 'CWEType'}, |
208 {'X': 'Old', 'ETN': 'String', 'ET': 'CWEType'}, |
209 {'X': 'Old', 'ETN': 'String', 'ET': 'CWEType'}, |
209 {'X': 'Personne', 'ETN': 'String', 'ET': 'CWEType'}, |
210 {'X': 'Personne', 'ETN': 'String', 'ET': 'CWEType'}, |
210 {'X': 'RQLExpression', 'ETN': 'String', 'ET': 'CWEType'}, |
211 {'X': 'RQLExpression', 'ETN': 'String', 'ET': 'CWEType'}, |
211 {'X': 'Societe', 'ETN': 'String', 'ET': 'CWEType'}, |
212 {'X': 'Societe', 'ETN': 'String', 'ET': 'CWEType'}, |
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', 12], |
606 [u'description', 13], |
607 [u'description', 13], |
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 ' |