84 self._set_perms(concerne2_rdef_eid) |
84 self._set_perms(concerne2_rdef_eid) |
85 self.assertFalse('name' in schema['Societe2'].subject_relations()) |
85 self.assertFalse('name' in schema['Societe2'].subject_relations()) |
86 self.assertFalse('concerne2' in schema['Societe2'].subject_relations()) |
86 self.assertFalse('concerne2' in schema['Societe2'].subject_relations()) |
87 self.assertFalse(self.index_exists('Societe2', 'name')) |
87 self.assertFalse(self.index_exists('Societe2', 'name')) |
88 self.commit() |
88 self.commit() |
89 self.assertTrue('name' in schema['Societe2'].subject_relations()) |
89 self.assertIn('name', schema['Societe2'].subject_relations()) |
90 self.assertTrue('concerne2' in schema['Societe2'].subject_relations()) |
90 self.assertIn('concerne2', schema['Societe2'].subject_relations()) |
91 self.assertTrue(self.index_exists('Societe2', 'name')) |
91 self.assertTrue(self.index_exists('Societe2', 'name')) |
92 # now we should be able to insert and query Societe2 |
92 # now we should be able to insert and query Societe2 |
93 s2eid = self.execute('INSERT Societe2 X: X name "logilab"')[0][0] |
93 s2eid = self.execute('INSERT Societe2 X: X name "logilab"')[0][0] |
94 self.execute('Societe2 X WHERE X name "logilab"') |
94 self.execute('Societe2 X WHERE X name "logilab"') |
95 self.execute('SET X concerne2 X WHERE X name "logilab"') |
95 self.execute('SET X concerne2 X WHERE X name "logilab"') |
101 'WHERE RT name "concerne2", E name "CWUser"')[0][0] |
101 'WHERE RT name "concerne2", E name "CWUser"')[0][0] |
102 self._set_perms(rdefeid) |
102 self._set_perms(rdefeid) |
103 self.commit() |
103 self.commit() |
104 self.execute('DELETE CWRelation X WHERE X eid %(x)s', {'x': concerne2_rdef_eid}) |
104 self.execute('DELETE CWRelation X WHERE X eid %(x)s', {'x': concerne2_rdef_eid}) |
105 self.commit() |
105 self.commit() |
106 self.assertTrue('concerne2' in schema['CWUser'].subject_relations()) |
106 self.assertIn('concerne2', schema['CWUser'].subject_relations()) |
107 self.assertFalse('concerne2' in schema['Societe2'].subject_relations()) |
107 self.assertFalse('concerne2' in schema['Societe2'].subject_relations()) |
108 self.assertFalse(self.execute('Any X WHERE X concerne2 Y')) |
108 self.assertFalse(self.execute('Any X WHERE X concerne2 Y')) |
109 # schema should be cleaned on delete (after commit) |
109 # schema should be cleaned on delete (after commit) |
110 self.execute('DELETE CWEType X WHERE X name "Societe2"') |
110 self.execute('DELETE CWEType X WHERE X name "Societe2"') |
111 self.execute('DELETE CWRType X WHERE X name "concerne2"') |
111 self.execute('DELETE CWRType X WHERE X name "concerne2"') |
152 instanceof_etypes = [etype for etype, in self.execute('Any ETN WHERE X eid %s, X is_instance_of ET, ET name ETN' % seid)] |
152 instanceof_etypes = [etype for etype, in self.execute('Any ETN WHERE X eid %s, X is_instance_of ET, ET name ETN' % seid)] |
153 self.assertEqual(sorted(instanceof_etypes), ['BaseTransition', 'Transition']) |
153 self.assertEqual(sorted(instanceof_etypes), ['BaseTransition', 'Transition']) |
154 snames = [name for name, in self.execute('Any N WHERE S is BaseTransition, S name N')] |
154 snames = [name for name, in self.execute('Any N WHERE S is BaseTransition, S name N')] |
155 self.assertFalse('subdiv' in snames) |
155 self.assertFalse('subdiv' in snames) |
156 snames = [name for name, in self.execute('Any N WHERE S is_instance_of BaseTransition, S name N')] |
156 snames = [name for name, in self.execute('Any N WHERE S is_instance_of BaseTransition, S name N')] |
157 self.assertTrue('subdiv' in snames) |
157 self.assertIn('subdiv', snames) |
158 |
158 |
159 |
159 |
160 def test_perms_synchronization_1(self): |
160 def test_perms_synchronization_1(self): |
161 schema = self.repo.schema |
161 schema = self.repo.schema |
162 self.assertEqual(schema['CWUser'].get_groups('read'), set(('managers', 'users'))) |
162 self.assertEqual(schema['CWUser'].get_groups('read'), set(('managers', 'users'))) |
292 {'default': Binary.zpickle('noname')})[0][0] |
292 {'default': Binary.zpickle('noname')})[0][0] |
293 assert self.execute('SET X read_permission Y WHERE X eid %(x)s, Y name "managers"', |
293 assert self.execute('SET X read_permission Y WHERE X eid %(x)s, Y name "managers"', |
294 {'x': attreid}) |
294 {'x': attreid}) |
295 self.commit() |
295 self.commit() |
296 self.schema.rebuild_infered_relations() |
296 self.schema.rebuild_infered_relations() |
297 self.assertTrue('Transition' in self.schema['messageid'].subjects()) |
297 self.assertIn('Transition', self.schema['messageid'].subjects()) |
298 self.assertTrue('WorkflowTransition' in self.schema['messageid'].subjects()) |
298 self.assertIn('WorkflowTransition', self.schema['messageid'].subjects()) |
299 self.execute('Any X WHERE X is_instance_of BaseTransition, X messageid "hop"') |
299 self.execute('Any X WHERE X is_instance_of BaseTransition, X messageid "hop"') |
300 |
300 |
301 def test_change_fulltextindexed(self): |
301 def test_change_fulltextindexed(self): |
302 req = self.request() |
302 req = self.request() |
303 target = req.create_entity(u'Email', messageid=u'1234', |
303 target = req.create_entity(u'Email', messageid=u'1234', |