194 def test_add_entity_type(self): |
194 def test_add_entity_type(self): |
195 self.assertFalse('Folder2' in self.schema) |
195 self.assertFalse('Folder2' in self.schema) |
196 self.assertFalse('filed_under2' in self.schema) |
196 self.assertFalse('filed_under2' in self.schema) |
197 self.mh.cmd_add_entity_type('Folder2') |
197 self.mh.cmd_add_entity_type('Folder2') |
198 self.assertTrue('Folder2' in self.schema) |
198 self.assertTrue('Folder2' in self.schema) |
|
199 self.assertTrue('Old' in self.schema) |
199 self.assertTrue(self.execute('CWEType X WHERE X name "Folder2"')) |
200 self.assertTrue(self.execute('CWEType X WHERE X name "Folder2"')) |
200 self.assertTrue('filed_under2' in self.schema) |
201 self.assertTrue('filed_under2' in self.schema) |
201 self.assertTrue(self.execute('CWRType X WHERE X name "filed_under2"')) |
202 self.assertTrue(self.execute('CWRType X WHERE X name "filed_under2"')) |
202 self.schema.rebuild_infered_relations() |
203 self.schema.rebuild_infered_relations() |
203 self.assertEqual(sorted(str(rs) for rs in self.schema['Folder2'].subject_relations()), |
204 self.assertEqual(sorted(str(rs) for rs in self.schema['Folder2'].subject_relations()), |
207 'filed_under2', 'has_text', |
208 'filed_under2', 'has_text', |
208 'identity', 'in_basket', 'is', 'is_instance_of', |
209 'identity', 'in_basket', 'is', 'is_instance_of', |
209 'modification_date', 'name', 'owned_by']) |
210 'modification_date', 'name', 'owned_by']) |
210 self.assertEqual([str(rs) for rs in self.schema['Folder2'].object_relations()], |
211 self.assertEqual([str(rs) for rs in self.schema['Folder2'].object_relations()], |
211 ['filed_under2', 'identity']) |
212 ['filed_under2', 'identity']) |
|
213 # Old will be missing as it has been renamed into 'New' in the migrated |
|
214 # schema while New hasn't been added here. |
212 self.assertEqual(sorted(str(e) for e in self.schema['filed_under2'].subjects()), |
215 self.assertEqual(sorted(str(e) for e in self.schema['filed_under2'].subjects()), |
213 sorted(str(e) for e in self.schema.entities() if not e.final)) |
216 sorted(str(e) for e in self.schema.entities() if not e.final and e != 'Old')) |
214 self.assertEqual(self.schema['filed_under2'].objects(), ('Folder2',)) |
217 self.assertEqual(self.schema['filed_under2'].objects(), ('Folder2',)) |
215 eschema = self.schema.eschema('Folder2') |
218 eschema = self.schema.eschema('Folder2') |
216 for cstr in eschema.rdef('name').constraints: |
219 for cstr in eschema.rdef('name').constraints: |
217 self.assertTrue(hasattr(cstr, 'eid')) |
220 self.assertTrue(hasattr(cstr, 'eid')) |
218 |
221 |
243 def test_add_drop_relation_type(self): |
246 def test_add_drop_relation_type(self): |
244 self.mh.cmd_add_entity_type('Folder2', auto=False) |
247 self.mh.cmd_add_entity_type('Folder2', auto=False) |
245 self.mh.cmd_add_relation_type('filed_under2') |
248 self.mh.cmd_add_relation_type('filed_under2') |
246 self.schema.rebuild_infered_relations() |
249 self.schema.rebuild_infered_relations() |
247 self.assertTrue('filed_under2' in self.schema) |
250 self.assertTrue('filed_under2' in self.schema) |
|
251 # Old will be missing as it has been renamed into 'New' in the migrated |
|
252 # schema while New hasn't been added here. |
248 self.assertEqual(sorted(str(e) for e in self.schema['filed_under2'].subjects()), |
253 self.assertEqual(sorted(str(e) for e in self.schema['filed_under2'].subjects()), |
249 sorted(str(e) for e in self.schema.entities() if not e.final)) |
254 sorted(str(e) for e in self.schema.entities() |
|
255 if not e.final and e != 'Old')) |
250 self.assertEqual(self.schema['filed_under2'].objects(), ('Folder2',)) |
256 self.assertEqual(self.schema['filed_under2'].objects(), ('Folder2',)) |
251 self.mh.cmd_drop_relation_type('filed_under2') |
257 self.mh.cmd_drop_relation_type('filed_under2') |
252 self.assertFalse('filed_under2' in self.schema) |
258 self.assertFalse('filed_under2' in self.schema) |
253 |
259 |
254 def test_add_relation_definition_nortype(self): |
260 def test_add_relation_definition_nortype(self): |