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') |
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.session.set_pool() |
196 self.session.set_pool() |
197 self.session.create_entity('CWGroup', name=u'bougloup1') |
197 self.session.create_entity('CWGroup', name=u'bougloup1') |
200 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}) |
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 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%")') |
202 self.assertEquals(rset.rows, [['admin', 'activated'], [SYT, 'activated']]) |
202 self.assertEquals(rset.rows, [['admin', 'activated'], [SYT, 'activated']]) |
203 |
203 |
204 def test_exists2(self): |
204 def test_exists2(self): |
205 self.create_user('comme', req=self.session) |
205 self.create_user('comme') |
206 self.create_user('cochon', req=self.session) |
206 self.create_user('cochon') |
207 self.sexecute('SET X copain Y WHERE X login "comme", Y login "cochon"') |
207 self.sexecute('SET X copain Y WHERE X login "comme", Y login "cochon"') |
208 rset = self.sexecute('Any GN ORDERBY GN WHERE X in_group G, G name GN, (G name "managers" OR EXISTS(X copain T, T login in ("comme", "cochon")))') |
208 rset = self.sexecute('Any GN ORDERBY GN WHERE X in_group G, G name GN, (G name "managers" OR EXISTS(X copain T, T login in ("comme", "cochon")))') |
209 self.assertEquals(rset.rows, [['managers'], ['users']]) |
209 self.assertEquals(rset.rows, [['managers'], ['users']]) |
210 |
210 |
211 def test_exists3(self): |
211 def test_exists3(self): |
212 self.create_user('comme', req=self.session) |
212 self.create_user('comme') |
213 self.create_user('cochon', req=self.session) |
213 self.create_user('cochon') |
214 self.sexecute('SET X copain Y WHERE X login "comme", Y login "cochon"') |
214 self.sexecute('SET X copain Y WHERE X login "comme", Y login "cochon"') |
215 self.failUnless(self.sexecute('Any X, Y WHERE X copain Y, X login "comme", Y login "cochon"')) |
215 self.failUnless(self.sexecute('Any X, Y WHERE X copain Y, X login "comme", Y login "cochon"')) |
216 self.sexecute('SET X copain Y WHERE X login %(syt)s, Y login "cochon"', {'syt': SYT}) |
216 self.sexecute('SET X copain Y WHERE X login %(syt)s, Y login "cochon"', {'syt': SYT}) |
217 self.failUnless(self.sexecute('Any X, Y WHERE X copain Y, X login %(syt)s, Y login "cochon"', {'syt': SYT})) |
217 self.failUnless(self.sexecute('Any X, Y WHERE X copain Y, X login %(syt)s, Y login "cochon"', {'syt': SYT})) |
218 rset = self.sexecute('Any GN,L WHERE X in_group G, X login L, G name GN, G name "managers" OR EXISTS(X copain T, T login in ("comme", "cochon"))') |
218 rset = self.sexecute('Any GN,L WHERE X in_group G, X login L, G name GN, G name "managers" OR EXISTS(X copain T, T login in ("comme", "cochon"))') |
219 self.assertEquals(sorted(rset.rows), [['managers', 'admin'], ['users', 'comme'], ['users', SYT]]) |
219 self.assertEquals(sorted(rset.rows), [['managers', 'admin'], ['users', 'comme'], ['users', SYT]]) |
220 |
220 |
221 def test_exists4(self): |
221 def test_exists4(self): |
222 self.create_user('comme', req=self.session) |
222 self.create_user('comme') |
223 self.create_user('cochon', groups=('users', 'guests'), req=self.session) |
223 self.create_user('cochon', groups=('users', 'guests')) |
224 self.create_user('billy', req=self.session) |
224 self.create_user('billy') |
225 self.sexecute('SET X copain Y WHERE X login "comme", Y login "cochon"') |
225 self.sexecute('SET X copain Y WHERE X login "comme", Y login "cochon"') |
226 self.sexecute('SET X copain Y WHERE X login "cochon", Y login "cochon"') |
226 self.sexecute('SET X copain Y WHERE X login "cochon", Y login "cochon"') |
227 self.sexecute('SET X copain Y WHERE X login "comme", Y login "billy"') |
227 self.sexecute('SET X copain Y WHERE X login "comme", Y login "billy"') |
228 self.sexecute('SET X copain Y WHERE X login %(syt)s, Y login "billy"', {'syt': SYT}) |
228 self.sexecute('SET X copain Y WHERE X login %(syt)s, Y login "billy"', {'syt': SYT}) |
229 # search for group name, login where |
229 # search for group name, login where |
239 all.rows.remove(['users', 'comme']) |
239 all.rows.remove(['users', 'comme']) |
240 all.rows.remove(['users', SYT]) |
240 all.rows.remove(['users', SYT]) |
241 self.assertEquals(sorted(rset.rows), sorted(all.rows)) |
241 self.assertEquals(sorted(rset.rows), sorted(all.rows)) |
242 |
242 |
243 def test_exists5(self): |
243 def test_exists5(self): |
244 self.create_user('comme', req=self.session) |
244 self.create_user('comme') |
245 self.create_user('cochon', groups=('users', 'guests'), req=self.session) |
245 self.create_user('cochon', groups=('users', 'guests')) |
246 self.create_user('billy', req=self.session) |
246 self.create_user('billy') |
247 self.sexecute('SET X copain Y WHERE X login "comme", Y login "cochon"') |
247 self.sexecute('SET X copain Y WHERE X login "comme", Y login "cochon"') |
248 self.sexecute('SET X copain Y WHERE X login "cochon", Y login "cochon"') |
248 self.sexecute('SET X copain Y WHERE X login "cochon", Y login "cochon"') |
249 self.sexecute('SET X copain Y WHERE X login "comme", Y login "billy"') |
249 self.sexecute('SET X copain Y WHERE X login "comme", Y login "billy"') |
250 self.sexecute('SET X copain Y WHERE X login %(syt)s, Y login "cochon"', {'syt': SYT}) |
250 self.sexecute('SET X copain Y WHERE X login %(syt)s, Y login "cochon"', {'syt': SYT}) |
251 rset= self.sexecute('Any L WHERE X login L, ' |
251 rset= self.sexecute('Any L WHERE X login L, ' |