server/test/unittest_msplanner.py
changeset 392 bccd9a788f7a
parent 341 0a426be2f3a2
child 393 45a675515427
equal deleted inserted replaced
391:42693fe3ef6f 392:bccd9a788f7a
  1044                     ('OneFetchStep', [('Any GN,L WHERE X in_group G, X login L, G name GN, EXISTS(X copain T, T is EUser), NOT EXISTS(X copain T2, T2 is EUser), G is EGroup, X is EUser',
  1044                     ('OneFetchStep', [('Any GN,L WHERE X in_group G, X login L, G name GN, EXISTS(X copain T, T is EUser), NOT EXISTS(X copain T2, T2 is EUser), G is EGroup, X is EUser',
  1045                        [{'G': 'EGroup', 'GN': 'String', 'L': 'String', 'T': 'EUser', 'T2': 'EUser', 'X': 'EUser'}])],
  1045                        [{'G': 'EGroup', 'GN': 'String', 'L': 'String', 'T': 'EUser', 'T2': 'EUser', 'X': 'EUser'}])],
  1046                      None, None, [self.system],
  1046                      None, None, [self.system],
  1047                      {'T': 'table0.C0', 'T2': 'table1.C0',
  1047                      {'T': 'table0.C0', 'T2': 'table1.C0',
  1048                       'X': 'table2.C1', 'X.login': 'table2.C0', 'L': 'table2.C0'}, [])])
  1048                       'X': 'table2.C1', 'X.login': 'table2.C0', 'L': 'table2.C0'}, [])])
       
  1049             
       
  1050     def test_exists_security_no_invariant(self):
       
  1051         ueid = self.session.user.eid
       
  1052         self._test('Any X,AA,AB,AC,AD ORDERBY AA WHERE X is EUser, X login AA, X firstname AB, X surname AC, X modification_date AD, A eid %(B)s, \
       
  1053     EXISTS(((X identity A) OR \
       
  1054             (EXISTS(X in_group C, C name IN("managers", "staff"), C is EGroup))) OR \
       
  1055             (EXISTS(X in_group D, A in_group D, NOT D name "users", D is EGroup)))',
       
  1056                [('FetchStep', [('Any X,AA,AB,AC,AD WHERE X login AA, X firstname AB, X surname AC, X modification_date AD, X is EUser',
       
  1057                                 [{'AA': 'String', 'AB': 'String', 'AC': 'String', 'AD': 'Datetime',
       
  1058                                   'X': 'EUser'}])],
       
  1059                  [self.ldap, self.system], None, {'AA': 'table0.C1', 'AB': 'table0.C2',
       
  1060                                                   'AC': 'table0.C3', 'AD': 'table0.C4',
       
  1061                                                   'X': 'table0.C0',
       
  1062                                                   'X.firstname': 'table0.C2',
       
  1063                                                   'X.login': 'table0.C1',
       
  1064                                                   'X.modification_date': 'table0.C4',
       
  1065                                                   'X.surname': 'table0.C3'}, []),
       
  1066                 ('OneFetchStep', [('Any X,AA,AB,AC,AD ORDERBY AA WHERE X login AA, X firstname AB, X surname AC, X modification_date AD, EXISTS(((X identity 5) OR (EXISTS(X in_group C, C name IN("managers", "staff"), C is EGroup))) OR (EXISTS(X in_group D, 5 in_group D, NOT D name "users", D is EGroup))), X is EUser',
       
  1067                                    [{'AA': 'String', 'AB': 'String', 'AC': 'String', 'AD': 'Datetime',
       
  1068                                      'C': 'EGroup', 'D': 'EGroup', 'X': 'EUser'}])],
       
  1069                  None, None, [self.system],
       
  1070                  {'AA': 'table0.C1', 'AB': 'table0.C2', 'AC': 'table0.C3', 'AD': 'table0.C4',
       
  1071                   'X': 'table0.C0',
       
  1072                   'X.firstname': 'table0.C2', 'X.login': 'table0.C1', 'X.modification_date': 'table0.C4', 'X.surname': 'table0.C3'},
       
  1073                  [])],
       
  1074                    {'B': ueid})
  1049 
  1075 
  1050     def test_relation_need_split(self):
  1076     def test_relation_need_split(self):
  1051         self._test('Any X, S WHERE X in_state S',
  1077         self._test('Any X, S WHERE X in_state S',
  1052                    [('UnionStep', None, None, [
  1078                    [('UnionStep', None, None, [
  1053                        ('OneFetchStep', [('Any X,S WHERE X in_state S, S is State, X is IN(Affaire, EUser)',
  1079                        ('OneFetchStep', [('Any X,S WHERE X in_state S, S is State, X is IN(Affaire, EUser)',