--- a/entities/test/unittest_base.py Tue Aug 18 09:25:44 2009 +0200
+++ b/entities/test/unittest_base.py Fri Aug 21 16:26:20 2009 +0200
@@ -57,149 +57,6 @@
self.assertEquals(e.dc_title(), 'member')
self.assertEquals(e.name(), u'bouah lôt')
-
-class StateAndTransitionsTC(BaseEntityTC):
-
- def test_transitions(self):
- user = self.entity('CWUser X')
- e = self.entity('State S WHERE S name "activated"')
- trs = list(e.transitions(user))
- self.assertEquals(len(trs), 1)
- self.assertEquals(trs[0].name, u'deactivate')
- self.assertEquals(trs[0].destination().name, u'deactivated')
- self.assert_(user.can_pass_transition('deactivate'))
- self.assert_(not user.can_pass_transition('activate'))
- # test a std user get no possible transition
- self.login('member')
- # fetch the entity using the new session
- e = self.entity('State S WHERE S name "activated"')
- trs = list(e.transitions(user))
- self.assertEquals(len(trs), 0)
- user = self.entity('CWUser X')
- self.assert_(not user.can_pass_transition('deactivate'))
- self.assert_(not user.can_pass_transition('activate'))
-
- def test_transitions_with_dest_specfied(self):
- user = self.entity('CWUser X')
- e = self.entity('State S WHERE S name "activated"')
- e2 = self.entity('State S WHERE S name "deactivated"')
- trs = list(e.transitions(user, e2.eid))
- self.assertEquals(len(trs), 1)
- self.assertEquals(trs[0].name, u'deactivate')
- self.assertEquals(trs[0].destination().name, u'deactivated')
- trs = list(e.transitions(user, e.eid))
- self.assertEquals(len(trs), 0)
-
- def test_transitions_maybe_passed(self):
- self.execute('INSERT RQLExpression X: X exprtype "ERQLExpression", '
- 'X expression "X owned_by U", T condition X '
- 'WHERE T name "deactivate"')
- self._test_deactivated()
-
- def test_transitions_maybe_passed_using_has_update_perm(self):
- self.execute('INSERT RQLExpression X: X exprtype "ERQLExpression", '
- 'X expression "U has_update_permission X", T condition X '
- 'WHERE T name "deactivate"')
- self._test_deactivated()
-
-
- def _test_deactivated(self):
- ueid = self.create_user('toto').eid
- self.create_user('tutu')
- cnx = self.login('tutu')
- cu = cnx.cursor()
- self.assertRaises(ValidationError,
- cu.execute, 'SET X in_state S WHERE X eid %(x)s, S name "deactivated"',
- {'x': ueid}, 'x')
- cnx.close()
- cnx = self.login('toto')
- cu = cnx.cursor()
- cu.execute('SET X in_state S WHERE X eid %(x)s, S name "deactivated"',
- {'x': ueid}, 'x')
- cnx.commit()
- self.assertRaises(ValidationError,
- cu.execute, 'SET X in_state S WHERE X eid %(x)s, S name "activated"',
- {'x': ueid}, 'x')
-
-
- def test_transitions_selection(self):
- """
- ------------------------ tr1 -----------------
- | state1 (CWGroup, Bookmark) | ------> | state2 (CWGroup) |
- ------------------------ -----------------
- | tr2 ------------------
- `------> | state3 (Bookmark) |
- ------------------
- """
- state1 = self.add_entity('State', name=u'state1')
- state2 = self.add_entity('State', name=u'state2')
- state3 = self.add_entity('State', name=u'state3')
- tr1 = self.add_entity('Transition', name=u'tr1')
- tr2 = self.add_entity('Transition', name=u'tr2')
- self.execute('SET X state_of Y WHERE X eid in (%s, %s), Y is CWEType, Y name "CWGroup"' %
- (state1.eid, state2.eid))
- self.execute('SET X state_of Y WHERE X eid in (%s, %s), Y is CWEType, Y name "Bookmark"' %
- (state1.eid, state3.eid))
- self.execute('SET X transition_of Y WHERE X eid %s, Y name "CWGroup"' % tr1.eid)
- self.execute('SET X transition_of Y WHERE X eid %s, Y name "Bookmark"' % tr2.eid)
- self.execute('SET X allowed_transition Y WHERE X eid %s, Y eid %s' %
- (state1.eid, tr1.eid))
- self.execute('SET X allowed_transition Y WHERE X eid %s, Y eid %s' %
- (state1.eid, tr2.eid))
- self.execute('SET X destination_state Y WHERE X eid %s, Y eid %s' %
- (tr1.eid, state2.eid))
- self.execute('SET X destination_state Y WHERE X eid %s, Y eid %s' %
- (tr2.eid, state3.eid))
- self.execute('SET X initial_state Y WHERE Y eid %s, X name "CWGroup"' % state1.eid)
- self.execute('SET X initial_state Y WHERE Y eid %s, X name "Bookmark"' % state1.eid)
- group = self.add_entity('CWGroup', name=u't1')
- transitions = list(state1.transitions(group))
- self.assertEquals(len(transitions), 1)
- self.assertEquals(transitions[0].name, 'tr1')
- bookmark = self.add_entity('Bookmark', title=u'111', path=u'/view')
- transitions = list(state1.transitions(bookmark))
- self.assertEquals(len(transitions), 1)
- self.assertEquals(transitions[0].name, 'tr2')
-
-
- def test_transitions_selection2(self):
- """
- ------------------------ tr1 (Bookmark) -----------------------
- | state1 (CWGroup, Bookmark) | -------------> | state2 (CWGroup,Bookmark) |
- ------------------------ -----------------------
- | tr2 (CWGroup) |
- `---------------------------------/
- """
- state1 = self.add_entity('State', name=u'state1')
- state2 = self.add_entity('State', name=u'state2')
- tr1 = self.add_entity('Transition', name=u'tr1')
- tr2 = self.add_entity('Transition', name=u'tr2')
- self.execute('SET X state_of Y WHERE X eid in (%s, %s), Y is CWEType, Y name "CWGroup"' %
- (state1.eid, state2.eid))
- self.execute('SET X state_of Y WHERE X eid in (%s, %s), Y is CWEType, Y name "Bookmark"' %
- (state1.eid, state2.eid))
- self.execute('SET X transition_of Y WHERE X eid %s, Y name "CWGroup"' % tr1.eid)
- self.execute('SET X transition_of Y WHERE X eid %s, Y name "Bookmark"' % tr2.eid)
- self.execute('SET X allowed_transition Y WHERE X eid %s, Y eid %s' %
- (state1.eid, tr1.eid))
- self.execute('SET X allowed_transition Y WHERE X eid %s, Y eid %s' %
- (state1.eid, tr2.eid))
- self.execute('SET X destination_state Y WHERE X eid %s, Y eid %s' %
- (tr1.eid, state2.eid))
- self.execute('SET X destination_state Y WHERE X eid %s, Y eid %s' %
- (tr2.eid, state2.eid))
- self.execute('SET X initial_state Y WHERE Y eid %s, X name "CWGroup"' % state1.eid)
- self.execute('SET X initial_state Y WHERE Y eid %s, X name "Bookmark"' % state1.eid)
- group = self.add_entity('CWGroup', name=u't1')
- transitions = list(state1.transitions(group))
- self.assertEquals(len(transitions), 1)
- self.assertEquals(transitions[0].name, 'tr1')
- bookmark = self.add_entity('Bookmark', title=u'111', path=u'/view')
- transitions = list(state1.transitions(bookmark))
- self.assertEquals(len(transitions), 1)
- self.assertEquals(transitions[0].name, 'tr2')
-
-
class EmailAddressTC(BaseEntityTC):
def test_canonical_form(self):
eid1 = self.execute('INSERT EmailAddress X: X address "maarten.ter.huurne@philips.com"')[0][0]
@@ -233,7 +90,6 @@
e = self.entity('CWUser X WHERE X login "admin"')
e.complete()
-
def test_matching_groups(self):
e = self.entity('CWUser X WHERE X login "admin"')
self.failUnless(e.matching_groups('managers'))
@@ -241,23 +97,6 @@
self.failUnless(e.matching_groups(('xyz', 'managers')))
self.failIf(e.matching_groups(('xyz', 'abcd')))
- def test_workflow_base(self):
- e = self.create_user('toto')
- self.assertEquals(e.state, 'activated')
- activatedeid = self.execute('State X WHERE X name "activated"')[0][0]
- deactivatedeid = self.execute('State X WHERE X name "deactivated"')[0][0]
- e.change_state(deactivatedeid, u'deactivate 1')
- self.commit()
- e.change_state(activatedeid, u'activate 1')
- self.commit()
- e.change_state(deactivatedeid, u'deactivate 2')
- self.commit()
- # get a fresh user to avoid potential cache issues
- e = self.entity('CWUser X WHERE X eid %s' % e.eid)
- self.assertEquals([tr.comment for tr in e.reverse_wf_info_for],
- [None, 'deactivate 1', 'activate 1', 'deactivate 2'])
- self.assertEquals(e.latest_trinfo().comment, 'deactivate 2')
-
class InterfaceTC(CubicWebTC):