21 else: |
21 else: |
22 SYT = 'sthenault' |
22 SYT = 'sthenault' |
23 ADIM = 'adimascio' |
23 ADIM = 'adimascio' |
24 |
24 |
25 |
25 |
26 def nopwd_authenticate(self, session, login, upassword): |
26 def nopwd_authenticate(self, session, login, password): |
27 """used to monkey patch the source to get successful authentication without |
27 """used to monkey patch the source to get successful authentication without |
28 upassword checking |
28 upassword checking |
29 """ |
29 """ |
30 assert login, 'no login!' |
30 assert login, 'no login!' |
31 searchfilter = [filter_format('(%s=%s)', (self.user_login_attr, login))] |
31 searchfilter = [filter_format('(%s=%s)', (self.user_login_attr, login))] |
160 self.sexecute('SET X in_group G WHERE X login %(syt)s, G name "managers"', {'syt': SYT}) |
160 self.sexecute('SET X in_group G WHERE X login %(syt)s, G name "managers"', {'syt': SYT}) |
161 self.commit() |
161 self.commit() |
162 syt = self.sexecute('CWUser X WHERE X login %(login)s', {'login': SYT}).get_entity(0, 0) |
162 syt = self.sexecute('CWUser X WHERE X login %(login)s', {'login': SYT}).get_entity(0, 0) |
163 self.assertEquals([g.name for g in syt.in_group], ['managers', 'users']) |
163 self.assertEquals([g.name for g in syt.in_group], ['managers', 'users']) |
164 self.patch_authenticate() |
164 self.patch_authenticate() |
165 cnx = self.login(SYT, 'dummypassword') |
165 cnx = self.login(SYT, password='dummypassword') |
166 cu = cnx.cursor() |
166 cu = cnx.cursor() |
167 adim = cu.execute('CWUser X WHERE X login %(login)s', {'login': ADIM}).get_entity(0, 0) |
167 adim = cu.execute('CWUser X WHERE X login %(login)s', {'login': ADIM}).get_entity(0, 0) |
168 adim.fire_transition('deactivate') |
168 adim.fire_transition('deactivate') |
169 try: |
169 try: |
170 cnx.commit() |
170 cnx.commit() |
181 finally: |
181 finally: |
182 # restore db state |
182 # restore db state |
183 self.restore_connection() |
183 self.restore_connection() |
184 adim = self.sexecute('CWUser X WHERE X login %(login)s', {'login': ADIM}).get_entity(0, 0) |
184 adim = self.sexecute('CWUser X WHERE X login %(login)s', {'login': ADIM}).get_entity(0, 0) |
185 adim.fire_transition('activate') |
185 adim.fire_transition('activate') |
186 self.execute('DELETE X in_group G WHERE X login %(syt)s, G name "managers"', {'syt': SYT}) |
186 self.sexecute('DELETE X in_group G WHERE X login %(syt)s, G name "managers"', {'syt': SYT}) |
187 |
187 |
188 def test_same_column_names(self): |
188 def test_same_column_names(self): |
189 self.sexecute('Any X, Y WHERE X copain Y, X login "comme", Y login "cochon"') |
189 self.sexecute('Any X, Y WHERE X copain Y, X login "comme", Y login "cochon"') |
190 |
190 |
191 def test_multiple_entities_from_different_sources(self): |
191 def test_multiple_entities_from_different_sources(self): |
192 self.create_user('cochon', req=self.session) |
192 self.create_user('cochon', req=self.session) |
193 self.failUnless(self.sexecute('Any X,Y WHERE X login %(syt)s, Y login "cochon"', {'syt': SYT})) |
193 self.failUnless(self.sexecute('Any X,Y WHERE X login %(syt)s, Y login "cochon"', {'syt': SYT})) |
194 |
194 |
195 def test_exists1(self): |
195 def test_exists1(self): |
196 self.add_entity('CWGroup', name=u'bougloup1', req=self.session) |
196 self.session.set_pool() |
197 self.add_entity('CWGroup', name=u'bougloup2', req=self.session) |
197 self.session.create_entity('CWGroup', name=u'bougloup1') |
|
198 self.session.create_entity('CWGroup', name=u'bougloup2') |
198 self.sexecute('SET U in_group G WHERE G name ~= "bougloup%", U login "admin"') |
199 self.sexecute('SET U in_group G WHERE G name ~= "bougloup%", U login "admin"') |
199 self.sexecute('SET U in_group G WHERE G name = "bougloup1", U login %(syt)s', {'syt': SYT}) |
200 self.sexecute('SET U in_group G WHERE G name = "bougloup1", U login %(syt)s', {'syt': SYT}) |
200 rset = self.sexecute('Any L,SN ORDERBY L WHERE X in_state S, S name SN, X login L, EXISTS(X in_group G, G name ~= "bougloup%")') |
201 rset = self.sexecute('Any L,SN ORDERBY L WHERE X in_state S, S name SN, X login L, EXISTS(X in_group G, G name ~= "bougloup%")') |
201 self.assertEquals(rset.rows, [['admin', 'activated'], [SYT, 'activated']]) |
202 self.assertEquals(rset.rows, [['admin', 'activated'], [SYT, 'activated']]) |
202 |
203 |