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 |
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'}, []), |