server/test/unittest_msplanner.py
changeset 6944 0cf10429ad39
parent 6943 406a41c25e13
child 6957 ffda12be2e9f
equal deleted inserted replaced
6943:406a41c25e13 6944:0cf10429ad39
    61 X_ALL_SOLS = sorted([{'X': 'Affaire'}, {'X': 'BaseTransition'}, {'X': 'Basket'},
    61 X_ALL_SOLS = sorted([{'X': 'Affaire'}, {'X': 'BaseTransition'}, {'X': 'Basket'},
    62                      {'X': 'Bookmark'}, {'X': 'CWAttribute'}, {'X': 'CWCache'},
    62                      {'X': 'Bookmark'}, {'X': 'CWAttribute'}, {'X': 'CWCache'},
    63                      {'X': 'CWConstraint'}, {'X': 'CWConstraintType'}, {'X': 'CWEType'},
    63                      {'X': 'CWConstraint'}, {'X': 'CWConstraintType'}, {'X': 'CWEType'},
    64                      {'X': 'CWGroup'}, {'X': 'CWPermission'}, {'X': 'CWProperty'},
    64                      {'X': 'CWGroup'}, {'X': 'CWPermission'}, {'X': 'CWProperty'},
    65                      {'X': 'CWRType'}, {'X': 'CWRelation'},
    65                      {'X': 'CWRType'}, {'X': 'CWRelation'},
    66                      {'X': 'CWSource'}, {'X': 'CWSourceHostConfig'},
    66                      {'X': 'CWSource'}, {'X': 'CWSourceHostConfig'}, {'X': 'CWSourceSchemaConfig'},
    67                      {'X': 'CWUser'}, {'X': 'CWUniqueTogetherConstraint'},
    67                      {'X': 'CWUser'}, {'X': 'CWUniqueTogetherConstraint'},
    68                      {'X': 'Card'}, {'X': 'Comment'}, {'X': 'Division'},
    68                      {'X': 'Card'}, {'X': 'Comment'}, {'X': 'Division'},
    69                      {'X': 'Email'}, {'X': 'EmailAddress'}, {'X': 'EmailPart'},
    69                      {'X': 'Email'}, {'X': 'EmailAddress'}, {'X': 'EmailPart'},
    70                      {'X': 'EmailThread'}, {'X': 'ExternalUri'}, {'X': 'File'},
    70                      {'X': 'EmailThread'}, {'X': 'ExternalUri'}, {'X': 'File'},
    71                      {'X': 'Folder'}, {'X': 'Note'},
    71                      {'X': 'Folder'}, {'X': 'Note'},
   895         # use a guest user
   895         # use a guest user
   896         self.session = self.user_groups_session('guests')
   896         self.session = self.user_groups_session('guests')
   897         ueid = self.session.user.eid
   897         ueid = self.session.user.eid
   898         ALL_SOLS = X_ALL_SOLS[:]
   898         ALL_SOLS = X_ALL_SOLS[:]
   899         ALL_SOLS.remove({'X': 'CWSourceHostConfig'}) # not authorized
   899         ALL_SOLS.remove({'X': 'CWSourceHostConfig'}) # not authorized
       
   900         ALL_SOLS.remove({'X': 'CWSourceSchemaConfig'}) # not authorized
   900         self._test('Any MAX(X)',
   901         self._test('Any MAX(X)',
   901                    [('FetchStep', [('Any E WHERE E type "X", E is Note', [{'E': 'Note'}])],
   902                    [('FetchStep', [('Any E WHERE E type "X", E is Note', [{'E': 'Note'}])],
   902                      [self.cards, self.system],  None, {'E': 'table1.C0'}, []),
   903                      [self.cards, self.system],  None, {'E': 'table1.C0'}, []),
   903                     ('FetchStep', [('Any X WHERE X is CWUser', [{'X': 'CWUser'}])],
   904                     ('FetchStep', [('Any X WHERE X is CWUser', [{'X': 'CWUser'}])],
   904                      [self.ldap, self.system], None, {'X': 'table2.C0'}, []),
   905                      [self.ldap, self.system], None, {'X': 'table2.C0'}, []),
   945         # use a guest user
   946         # use a guest user
   946         self.session = self.user_groups_session('guests')
   947         self.session = self.user_groups_session('guests')
   947         ueid = self.session.user.eid
   948         ueid = self.session.user.eid
   948         X_ET_ALL_SOLS = []
   949         X_ET_ALL_SOLS = []
   949         for s in X_ALL_SOLS:
   950         for s in X_ALL_SOLS:
   950             if s == {'X': 'CWSourceHostConfig'}:
   951             if s in ({'X': 'CWSourceHostConfig'}, {'X': 'CWSourceSchemaConfig'}):
   951                 continue # not authorized
   952                 continue # not authorized
   952             ets = {'ET': 'CWEType'}
   953             ets = {'ET': 'CWEType'}
   953             ets.update(s)
   954             ets.update(s)
   954             X_ET_ALL_SOLS.append(ets)
   955             X_ET_ALL_SOLS.append(ets)
   955         self._test('Any ET, COUNT(X) GROUPBY ET ORDERBY ET WHERE X is ET',
   956         self._test('Any ET, COUNT(X) GROUPBY ET ORDERBY ET WHERE X is ET',
  2537                                     [{'X': 'Note'}, {'X': 'State'}, {'X': 'Card'}])],
  2538                                     [{'X': 'Note'}, {'X': 'State'}, {'X': 'Card'}])],
  2538                      [self.cards, self.cards2, self.system],
  2539                      [self.cards, self.cards2, self.system],
  2539                      None, {'X': 'table0.C0'}, []),
  2540                      None, {'X': 'table0.C0'}, []),
  2540                     ('UnionStep', None, None,
  2541                     ('UnionStep', None, None,
  2541                      [('OneFetchStep',
  2542                      [('OneFetchStep',
  2542                        [(u'Any X WHERE X owned_by U, U login "anon", U is CWUser, X is IN(Affaire, BaseTransition, Basket, Bookmark, CWAttribute, CWCache, CWConstraint, CWConstraintType, CWEType, CWGroup, CWPermission, CWProperty, CWRType, CWRelation, CWSource, CWSourceHostConfig, CWUniqueTogetherConstraint, CWUser, Division, Email, EmailAddress, EmailPart, EmailThread, ExternalUri, File, Folder, Personne, RQLExpression, Societe, SubDivision, SubWorkflowExitPoint, Tag, TrInfo, Transition, Workflow, WorkflowTransition)',
  2543                        [(u'Any X WHERE X owned_by U, U login "anon", U is CWUser, X is IN(Affaire, BaseTransition, Basket, Bookmark, CWAttribute, CWCache, CWConstraint, CWConstraintType, CWEType, CWGroup, CWPermission, CWProperty, CWRType, CWRelation, CWSource, CWSourceHostConfig, CWSourceSchemaConfig, CWUniqueTogetherConstraint, CWUser, Division, Email, EmailAddress, EmailPart, EmailThread, ExternalUri, File, Folder, Personne, RQLExpression, Societe, SubDivision, SubWorkflowExitPoint, Tag, TrInfo, Transition, Workflow, WorkflowTransition)',
  2543                          [{'U': 'CWUser', 'X': 'Affaire'},
  2544                          [{'U': 'CWUser', 'X': 'Affaire'},
  2544                           {'U': 'CWUser', 'X': 'BaseTransition'},
  2545                           {'U': 'CWUser', 'X': 'BaseTransition'},
  2545                           {'U': 'CWUser', 'X': 'Basket'},
  2546                           {'U': 'CWUser', 'X': 'Basket'},
  2546                           {'U': 'CWUser', 'X': 'Bookmark'},
  2547                           {'U': 'CWUser', 'X': 'Bookmark'},
  2547                           {'U': 'CWUser', 'X': 'CWAttribute'},
  2548                           {'U': 'CWUser', 'X': 'CWAttribute'},
  2554                           {'U': 'CWUser', 'X': 'CWProperty'},
  2555                           {'U': 'CWUser', 'X': 'CWProperty'},
  2555                           {'U': 'CWUser', 'X': 'CWRType'},
  2556                           {'U': 'CWUser', 'X': 'CWRType'},
  2556                           {'U': 'CWUser', 'X': 'CWRelation'},
  2557                           {'U': 'CWUser', 'X': 'CWRelation'},
  2557                           {'U': 'CWUser', 'X': 'CWSource'},
  2558                           {'U': 'CWUser', 'X': 'CWSource'},
  2558                           {'U': 'CWUser', 'X': 'CWSourceHostConfig'},
  2559                           {'U': 'CWUser', 'X': 'CWSourceHostConfig'},
       
  2560                           {'U': 'CWUser', 'X': 'CWSourceSchemaConfig'},
  2559                           {'U': 'CWUser', 'X': 'CWUniqueTogetherConstraint'},
  2561                           {'U': 'CWUser', 'X': 'CWUniqueTogetherConstraint'},
  2560                           {'U': 'CWUser', 'X': 'CWUser'},
  2562                           {'U': 'CWUser', 'X': 'CWUser'},
  2561                           {'U': 'CWUser', 'X': 'Division'},
  2563                           {'U': 'CWUser', 'X': 'Division'},
  2562                           {'U': 'CWUser', 'X': 'Email'},
  2564                           {'U': 'CWUser', 'X': 'Email'},
  2563                           {'U': 'CWUser', 'X': 'EmailAddress'},
  2565                           {'U': 'CWUser', 'X': 'EmailAddress'},