139 for cstr in eschema.constraints('name'): |
139 for cstr in eschema.constraints('name'): |
140 self.failUnless(hasattr(cstr, 'eid')) |
140 self.failUnless(hasattr(cstr, 'eid')) |
141 |
141 |
142 def test_add_drop_entity_type(self): |
142 def test_add_drop_entity_type(self): |
143 self.mh.cmd_add_entity_type('Folder2') |
143 self.mh.cmd_add_entity_type('Folder2') |
144 todoeid = self.mh.cmd_add_state(u'todo', 'Folder2', initial=True) |
144 wf = self.mh.cmd_add_workflow(u'folder2 wf', 'Folder2') |
145 doneeid = self.mh.cmd_add_state(u'done', 'Folder2') |
145 todo = wf.add_state(u'todo', initial=True) |
146 self.mh.cmd_add_transition(u'redoit', 'Folder2', (doneeid,), todoeid) |
146 done = wf.add_state(u'done') |
147 self.mh.cmd_add_transition(u'markasdone', 'Folder2', (todoeid,), doneeid) |
147 wf.add_transition(u'redoit', done, todo) |
|
148 wf.add_transition(u'markasdone', todo, done) |
148 self.commit() |
149 self.commit() |
149 eschema = self.schema.eschema('Folder2') |
150 eschema = self.schema.eschema('Folder2') |
150 self.mh.cmd_drop_entity_type('Folder2') |
151 self.mh.cmd_drop_entity_type('Folder2') |
151 self.failIf('Folder2' in self.schema) |
152 self.failIf('Folder2' in self.schema) |
152 self.failIf(self.execute('CWEType X WHERE X name "Folder2"')) |
153 self.failIf(self.execute('CWEType X WHERE X name "Folder2"')) |
173 ('Affaire', )) |
174 ('Affaire', )) |
174 self.assertEquals(self.schema['concerne2'].rproperty('Personne', 'Affaire', 'cardinality'), |
175 self.assertEquals(self.schema['concerne2'].rproperty('Personne', 'Affaire', 'cardinality'), |
175 '1*') |
176 '1*') |
176 self.mh.cmd_add_relation_definition('Personne', 'concerne2', 'Note') |
177 self.mh.cmd_add_relation_definition('Personne', 'concerne2', 'Note') |
177 self.assertEquals(sorted(self.schema['concerne2'].objects()), ['Affaire', 'Note']) |
178 self.assertEquals(sorted(self.schema['concerne2'].objects()), ['Affaire', 'Note']) |
178 self.mh.add_entity('Personne', nom=u'tot') |
179 self.mh.create_entity('Personne', nom=u'tot') |
179 self.mh.add_entity('Affaire') |
180 self.mh.create_entity('Affaire') |
180 self.mh.rqlexec('SET X concerne2 Y WHERE X is Personne, Y is Affaire') |
181 self.mh.rqlexec('SET X concerne2 Y WHERE X is Personne, Y is Affaire') |
181 self.commit() |
182 self.commit() |
182 self.mh.cmd_drop_relation_definition('Personne', 'concerne2', 'Affaire') |
183 self.mh.cmd_drop_relation_definition('Personne', 'concerne2', 'Affaire') |
183 self.failUnless('concerne2' in self.schema) |
184 self.failUnless('concerne2' in self.schema) |
184 self.mh.cmd_drop_relation_definition('Personne', 'concerne2', 'Note') |
185 self.mh.cmd_drop_relation_definition('Personne', 'concerne2', 'Note') |
441 |
442 |
442 def test_remove_dep_cube(self): |
443 def test_remove_dep_cube(self): |
443 ex = self.assertRaises(ConfigurationError, self.mh.cmd_remove_cube, 'file') |
444 ex = self.assertRaises(ConfigurationError, self.mh.cmd_remove_cube, 'file') |
444 self.assertEquals(str(ex), "can't remove cube file, used as a dependency") |
445 self.assertEquals(str(ex), "can't remove cube file, used as a dependency") |
445 |
446 |
446 def test_set_state(self): |
|
447 user = self.session.user |
|
448 self.mh.set_state(user.eid, 'deactivated') |
|
449 user.clear_related_cache('in_state', 'subject') |
|
450 self.assertEquals(user.state, 'deactivated') |
|
451 |
|
452 def test_introduce_base_class(self): |
447 def test_introduce_base_class(self): |
453 self.mh.cmd_add_entity_type('Para') |
448 self.mh.cmd_add_entity_type('Para') |
454 self.mh.repo.schema.rebuild_infered_relations() |
449 self.mh.repo.schema.rebuild_infered_relations() |
455 self.assertEquals(sorted(et.type for et in self.schema['Para'].specialized_by()), |
450 self.assertEquals(sorted(et.type for et in self.schema['Para'].specialized_by()), |
456 ['Note']) |
451 ['Note']) |