100 repo.close(cnxid) |
100 repo.close(cnxid) |
101 |
101 |
102 def test_login_upassword_accent(self): |
102 def test_login_upassword_accent(self): |
103 repo = self.repo |
103 repo = self.repo |
104 cnxid = repo.connect(*self.default_user_password()) |
104 cnxid = repo.connect(*self.default_user_password()) |
105 repo.execute(cnxid, 'INSERT CWUser X: X login %(login)s, X upassword %(passwd)s, X in_state S, X in_group G WHERE S name "activated", G name "users"', |
105 repo.execute(cnxid, 'INSERT CWUser X: X login %(login)s, X upassword %(passwd)s, X in_group G WHERE G name "users"', |
106 {'login': u"barnabé", 'passwd': u"héhéhé".encode('UTF8')}) |
106 {'login': u"barnabé", 'passwd': u"héhéhé".encode('UTF8')}) |
107 repo.commit(cnxid) |
107 repo.commit(cnxid) |
108 repo.close(cnxid) |
108 repo.close(cnxid) |
109 self.assert_(repo.connect(u"barnabé", u"héhéhé".encode('UTF8'))) |
109 self.assert_(repo.connect(u"barnabé", u"héhéhé".encode('UTF8'))) |
110 |
110 |
111 def test_invalid_entity_rollback(self): |
111 def test_invalid_entity_rollback(self): |
112 repo = self.repo |
112 repo = self.repo |
113 cnxid = repo.connect(*self.default_user_password()) |
113 cnxid = repo.connect(*self.default_user_password()) |
114 # no group |
114 # no group |
115 repo.execute(cnxid, 'INSERT CWUser X: X login %(login)s, X upassword %(passwd)s, X in_state S WHERE S name "activated"', |
115 repo.execute(cnxid, 'INSERT CWUser X: X login %(login)s, X upassword %(passwd)s', |
116 {'login': u"tutetute", 'passwd': 'tutetute'}) |
116 {'login': u"tutetute", 'passwd': 'tutetute'}) |
117 self.assertRaises(ValidationError, repo.commit, cnxid) |
117 self.assertRaises(ValidationError, repo.commit, cnxid) |
118 rset = repo.execute(cnxid, 'CWUser X WHERE X login "tutetute"') |
118 rset = repo.execute(cnxid, 'CWUser X WHERE X login "tutetute"') |
119 self.assertEquals(rset.rowcount, 0) |
119 self.assertEquals(rset.rowcount, 0) |
120 |
120 |
188 |
188 |
189 def test_transaction_base3(self): |
189 def test_transaction_base3(self): |
190 repo = self.repo |
190 repo = self.repo |
191 cnxid = repo.connect(*self.default_user_password()) |
191 cnxid = repo.connect(*self.default_user_password()) |
192 # rollback state change which trigger TrInfo insertion |
192 # rollback state change which trigger TrInfo insertion |
193 ueid = repo._get_session(cnxid).user.eid |
193 user = repo._get_session(cnxid).user |
194 rset = repo.execute(cnxid, 'TrInfo T WHERE T wf_info_for X, X eid %(x)s', {'x': ueid}) |
194 user.fire_transition('deactivate') |
|
195 rset = repo.execute(cnxid, 'TrInfo T WHERE T wf_info_for X, X eid %(x)s', {'x': user.eid}) |
195 self.assertEquals(len(rset), 1) |
196 self.assertEquals(len(rset), 1) |
196 repo.execute(cnxid, 'SET X in_state S WHERE X eid %(x)s, S name "deactivated"', |
|
197 {'x': ueid}, 'x') |
|
198 rset = repo.execute(cnxid, 'TrInfo T WHERE T wf_info_for X, X eid %(x)s', {'x': ueid}) |
|
199 self.assertEquals(len(rset), 2) |
|
200 repo.rollback(cnxid) |
197 repo.rollback(cnxid) |
201 rset = repo.execute(cnxid, 'TrInfo T WHERE T wf_info_for X, X eid %(x)s', {'x': ueid}) |
198 rset = repo.execute(cnxid, 'TrInfo T WHERE T wf_info_for X, X eid %(x)s', {'x': user.eid}) |
202 self.assertEquals(len(rset), 1) |
199 self.assertEquals(len(rset), 0) |
203 |
200 |
204 def test_transaction_interleaved(self): |
201 def test_transaction_interleaved(self): |
205 self.skip('implement me') |
202 self.skip('implement me') |
206 |
203 |
207 def test_close_wait_processing_request(self): |
204 def test_close_wait_processing_request(self): |