server/test/unittest_msplanner.py
changeset 341 0a426be2f3a2
parent 332 86b8d58664eb
child 392 bccd9a788f7a
equal deleted inserted replaced
340:bfe0e95571aa 341:0a426be2f3a2
    26 
    26 
    27         
    27         
    28 class FakeCardSource(AbstractSource):
    28 class FakeCardSource(AbstractSource):
    29     uri = 'ccc'
    29     uri = 'ccc'
    30     support_entities = {'Card': True, 'Note': True, 'State': True}
    30     support_entities = {'Card': True, 'Note': True, 'State': True}
    31     support_relations = {'in_state': True, 'multisource_rel': True}
    31     support_relations = {'in_state': True, 'multisource_rel': True, 'multisource_inlined_rel': True}
    32     dont_cross_relations = set(('fiche',))
    32     dont_cross_relations = set(('fiche',))
    33     
    33     
    34     def syntax_tree_search(self, *args, **kwargs):
    34     def syntax_tree_search(self, *args, **kwargs):
    35         return []
    35         return []
    36 
    36 
    58     """
    58     """
    59     repo = repo
    59     repo = repo
    60     
    60     
    61     def setUp(self):
    61     def setUp(self):
    62         #_QuerierTC.setUp(self)
    62         #_QuerierTC.setUp(self)
       
    63         clear_cache(repo, 'rel_type_sources')
    63         self.o = repo.querier
    64         self.o = repo.querier
    64         self.session = repo._sessions.values()[0]
    65         self.session = repo._sessions.values()[0]
    65         self.pool = self.session.set_pool()
    66         self.pool = self.session.set_pool()
    66         self.schema = self.o.schema
    67         self.schema = self.o.schema
    67         # hijack Affaire security
    68         # hijack Affaire security
  1142                      [self.rql, self.system], None, {'S': 'table0.C1', 'S.name': 'table0.C0', 'SN': 'table0.C0'},
  1143                      [self.rql, self.system], None, {'S': 'table0.C1', 'S.name': 'table0.C0', 'SN': 'table0.C0'},
  1143                      []),
  1144                      []),
  1144                     ('FetchStep', [('Any X WHERE X is Note', [{'X': 'Note'}])],
  1145                     ('FetchStep', [('Any X WHERE X is Note', [{'X': 'Note'}])],
  1145                      [self.rql, self.system], None, {'X': 'table1.C0'},
  1146                      [self.rql, self.system], None, {'X': 'table1.C0'},
  1146                      []),
  1147                      []),
  1147                     ('UnionStep', None, None,
  1148                     ('IntersectStep', None, None,
  1148                      [('OneFetchStep',
  1149                      [('OneFetchStep',
  1149                        [('Any SN WHERE NOT X in_state S, S name SN, S is State, X is IN(Affaire, EUser)',
  1150                        [('Any SN WHERE NOT X in_state S, S name SN, S is State, X is IN(Affaire, EUser)',
  1150                          [{'S': 'State', 'SN': 'String', 'X': 'Affaire'},
  1151                          [{'S': 'State', 'SN': 'String', 'X': 'Affaire'},
  1151                           {'S': 'State', 'SN': 'String', 'X': 'EUser'}])],
  1152                           {'S': 'State', 'SN': 'String', 'X': 'EUser'}])],
  1152                        None, None, [self.system], {'S': 'table0.C1', 'S.name': 'table0.C0', 'SN': 'table0.C0'},
  1153                        None, None, [self.system], {'S': 'table0.C1', 'S.name': 'table0.C0', 'SN': 'table0.C0'},
  1433                         ('OneFetchStep', [('Any %s,Y WHERE %s created_by Y, Y is EUser'%(ueid,ueid), [{'Y': 'EUser'}])],
  1434                         ('OneFetchStep', [('Any %s,Y WHERE %s created_by Y, Y is EUser'%(ueid,ueid), [{'Y': 'EUser'}])],
  1434                          None, None, [self.system], {'Y': 'table0.C0'}, []),
  1435                          None, None, [self.system], {'Y': 'table0.C0'}, []),
  1435                         ]),
  1436                         ]),
  1436                     ],
  1437                     ],
  1437                    {'x': ueid, 'y': ueid})
  1438                    {'x': ueid, 'y': ueid})
  1438         
  1439 
       
  1440     def test_delete_entity1(self):
       
  1441         repo._type_source_cache[999999] = ('Note', 'system', 999999)
       
  1442         self._test('DELETE Note X WHERE X eid %(x)s, NOT Y multisource_rel X',
       
  1443                    [('DeleteEntitiesStep',
       
  1444                      [('OneFetchStep', [('Any 999999 WHERE NOT Y multisource_rel 999999, Y is IN(Card, Note)',
       
  1445                                          [{'Y': 'Card'}, {'Y': 'Note'}])],
       
  1446                        None, None, [self.system], {}, [])
       
  1447                       ])
       
  1448                     ],
       
  1449                    {'x': 999999})
       
  1450         
       
  1451     def test_delete_entity2(self):
       
  1452         repo._type_source_cache[999999] = ('Note', 'system', 999999)
       
  1453         self._test('DELETE Note X WHERE X eid %(x)s, NOT X multisource_inlined_rel Y',
       
  1454                    [('DeleteEntitiesStep',
       
  1455                      [('OneFetchStep', [('Any X WHERE X eid 999999, NOT X multisource_inlined_rel Y, X is Note, Y is IN(Affaire, Note)',
       
  1456                                          [{'X': 'Note', 'Y': 'Affaire'}, {'X': 'Note', 'Y': 'Note'}])],
       
  1457                        None, None, [self.system], {}, [])
       
  1458                       ])
       
  1459                     ],
       
  1460                    {'x': 999999})
       
  1461                    
  1439     def test_update(self):
  1462     def test_update(self):
  1440         self._test('SET X copain Y WHERE X login "comme", Y login "cochon"',
  1463         self._test('SET X copain Y WHERE X login "comme", Y login "cochon"',
  1441                    [('FetchStep',
  1464                    [('FetchStep',
  1442                      [('Any X WHERE X login "comme", X is EUser', [{'X': 'EUser'}])],
  1465                      [('Any X WHERE X login "comme", X is EUser', [{'X': 'EUser'}])],
  1443                      [self.ldap, self.system], None, {'X': 'table0.C0'}, []),
  1466                      [self.ldap, self.system], None, {'X': 'table0.C0'}, []),