239 |
244 |
240 def test_req_pending_insert(self): |
245 def test_req_pending_insert(self): |
241 """make sure req's pending insertions are taken into account""" |
246 """make sure req's pending insertions are taken into account""" |
242 tmpgroup = self.request().create_entity('CWGroup', name=u"test") |
247 tmpgroup = self.request().create_entity('CWGroup', name=u"test") |
243 user = self.user() |
248 user = self.user() |
244 req = self.request() |
249 req = self.request(**req_form(user)) |
245 req.set_session_data('pending_insert', set([(user.eid, 'in_group', tmpgroup.eid)])) |
250 req.set_session_data('pending_insert', set([(user.eid, 'in_group', tmpgroup.eid)])) |
246 path, params = self.expect_redirect_publish(req, 'edit') |
251 path, params = self.expect_redirect_publish(req, 'edit') |
247 usergroups = [gname for gname, in |
252 usergroups = [gname for gname, in |
248 self.execute('Any N WHERE G name N, U in_group G, U eid %(u)s', {'u': user.eid})] |
253 self.execute('Any N WHERE G name N, U in_group G, U eid %(u)s', {'u': user.eid})] |
249 self.assertUnorderedIterableEquals(usergroups, ['managers', 'test']) |
254 self.assertUnorderedIterableEquals(usergroups, ['managers', 'test']) |
250 self.assertEquals(req.get_pending_inserts(), []) |
255 self.assertEquals(get_pending_inserts(req), []) |
251 |
256 |
252 |
257 |
253 def test_req_pending_delete(self): |
258 def test_req_pending_delete(self): |
254 """make sure req's pending deletions are taken into account""" |
259 """make sure req's pending deletions are taken into account""" |
255 user = self.user() |
260 user = self.user() |
258 usergroups = [gname for gname, in |
263 usergroups = [gname for gname, in |
259 self.execute('Any N WHERE G name N, U in_group G, U eid %(u)s', {'u': user.eid})] |
264 self.execute('Any N WHERE G name N, U in_group G, U eid %(u)s', {'u': user.eid})] |
260 # just make sure everything was set correctly |
265 # just make sure everything was set correctly |
261 self.assertUnorderedIterableEquals(usergroups, ['managers', 'test']) |
266 self.assertUnorderedIterableEquals(usergroups, ['managers', 'test']) |
262 # now try to delete the relation |
267 # now try to delete the relation |
263 req = self.request() |
268 req = self.request(**req_form(user)) |
264 req.set_session_data('pending_delete', set([(user.eid, 'in_group', groupeid)])) |
269 req.set_session_data('pending_delete', set([(user.eid, 'in_group', groupeid)])) |
265 path, params = self.expect_redirect_publish(req, 'edit') |
270 path, params = self.expect_redirect_publish(req, 'edit') |
266 usergroups = [gname for gname, in |
271 usergroups = [gname for gname, in |
267 self.execute('Any N WHERE G name N, U in_group G, U eid %(u)s', {'u': user.eid})] |
272 self.execute('Any N WHERE G name N, U in_group G, U eid %(u)s', {'u': user.eid})] |
268 self.assertUnorderedIterableEquals(usergroups, ['managers']) |
273 self.assertUnorderedIterableEquals(usergroups, ['managers']) |
269 self.assertEquals(req.get_pending_deletes(), []) |
274 self.assertEquals(get_pending_deletes(req), []) |
270 |
275 |
271 # def test_custom_attribute_handler(self): |
276 # def test_custom_attribute_handler(self): |
272 # def custom_login_edit(self, formparams, value, relations): |
277 # def custom_login_edit(self, formparams, value, relations): |
273 # formparams['login'] = value.upper() |
278 # formparams['login'] = value.upper() |
274 # relations.append('X login %(login)s') |
279 # relations.append('X login %(login)s') |
580 self.assertEquals(self.execute('Any N WHERE T tags P, P is CWUser, T name N').rows, |
585 self.assertEquals(self.execute('Any N WHERE T tags P, P is CWUser, T name N').rows, |
581 [['javascript']]) |
586 [['javascript']]) |
582 |
587 |
583 def test_pending_insertion(self): |
588 def test_pending_insertion(self): |
584 res, req = self.remote_call('add_pending_inserts', [['12', 'tags', '13']]) |
589 res, req = self.remote_call('add_pending_inserts', [['12', 'tags', '13']]) |
585 deletes = req.get_pending_deletes() |
590 deletes = get_pending_deletes(req) |
586 self.assertEquals(deletes, []) |
591 self.assertEquals(deletes, []) |
587 inserts = req.get_pending_inserts() |
592 inserts = get_pending_inserts(req) |
588 self.assertEquals(inserts, ['12:tags:13']) |
593 self.assertEquals(inserts, ['12:tags:13']) |
589 res, req = self.remote_call('add_pending_inserts', [['12', 'tags', '14']]) |
594 res, req = self.remote_call('add_pending_inserts', [['12', 'tags', '14']]) |
590 deletes = req.get_pending_deletes() |
595 deletes = get_pending_deletes(req) |
591 self.assertEquals(deletes, []) |
596 self.assertEquals(deletes, []) |
592 inserts = req.get_pending_inserts() |
597 inserts = get_pending_inserts(req) |
593 self.assertEquals(inserts, ['12:tags:13', '12:tags:14']) |
598 self.assertEquals(inserts, ['12:tags:13', '12:tags:14']) |
594 inserts = req.get_pending_inserts(12) |
599 inserts = get_pending_inserts(req, 12) |
595 self.assertEquals(inserts, ['12:tags:13', '12:tags:14']) |
600 self.assertEquals(inserts, ['12:tags:13', '12:tags:14']) |
596 inserts = req.get_pending_inserts(13) |
601 inserts = get_pending_inserts(req, 13) |
597 self.assertEquals(inserts, ['12:tags:13']) |
602 self.assertEquals(inserts, ['12:tags:13']) |
598 inserts = req.get_pending_inserts(14) |
603 inserts = get_pending_inserts(req, 14) |
599 self.assertEquals(inserts, ['12:tags:14']) |
604 self.assertEquals(inserts, ['12:tags:14']) |
600 req.remove_pending_operations() |
605 req.remove_pending_operations() |
601 |
606 |
602 def test_pending_deletion(self): |
607 def test_pending_deletion(self): |
603 res, req = self.remote_call('add_pending_delete', ['12', 'tags', '13']) |
608 res, req = self.remote_call('add_pending_delete', ['12', 'tags', '13']) |
604 inserts = req.get_pending_inserts() |
609 inserts = get_pending_inserts(req) |
605 self.assertEquals(inserts, []) |
610 self.assertEquals(inserts, []) |
606 deletes = req.get_pending_deletes() |
611 deletes = get_pending_deletes(req) |
607 self.assertEquals(deletes, ['12:tags:13']) |
612 self.assertEquals(deletes, ['12:tags:13']) |
608 res, req = self.remote_call('add_pending_delete', ['12', 'tags', '14']) |
613 res, req = self.remote_call('add_pending_delete', ['12', 'tags', '14']) |
609 inserts = req.get_pending_inserts() |
614 inserts = get_pending_inserts(req) |
610 self.assertEquals(inserts, []) |
615 self.assertEquals(inserts, []) |
611 deletes = req.get_pending_deletes() |
616 deletes = get_pending_deletes(req) |
612 self.assertEquals(deletes, ['12:tags:13', '12:tags:14']) |
617 self.assertEquals(deletes, ['12:tags:13', '12:tags:14']) |
613 deletes = req.get_pending_deletes(12) |
618 deletes = get_pending_deletes(req, 12) |
614 self.assertEquals(deletes, ['12:tags:13', '12:tags:14']) |
619 self.assertEquals(deletes, ['12:tags:13', '12:tags:14']) |
615 deletes = req.get_pending_deletes(13) |
620 deletes = get_pending_deletes(req, 13) |
616 self.assertEquals(deletes, ['12:tags:13']) |
621 self.assertEquals(deletes, ['12:tags:13']) |
617 deletes = req.get_pending_deletes(14) |
622 deletes = get_pending_deletes(req, 14) |
618 self.assertEquals(deletes, ['12:tags:14']) |
623 self.assertEquals(deletes, ['12:tags:14']) |
619 req.remove_pending_operations() |
624 req.remove_pending_operations() |
620 |
625 |
621 def test_remove_pending_operations(self): |
626 def test_remove_pending_operations(self): |
622 self.remote_call('add_pending_delete', ['12', 'tags', '13']) |
627 self.remote_call('add_pending_delete', ['12', 'tags', '13']) |
623 _, req = self.remote_call('add_pending_inserts', [['12', 'tags', '14']]) |
628 _, req = self.remote_call('add_pending_inserts', [['12', 'tags', '14']]) |
624 inserts = req.get_pending_inserts() |
629 inserts = get_pending_inserts(req) |
625 self.assertEquals(inserts, ['12:tags:14']) |
630 self.assertEquals(inserts, ['12:tags:14']) |
626 deletes = req.get_pending_deletes() |
631 deletes = get_pending_deletes(req) |
627 self.assertEquals(deletes, ['12:tags:13']) |
632 self.assertEquals(deletes, ['12:tags:13']) |
628 req.remove_pending_operations() |
633 req.remove_pending_operations() |
629 self.assertEquals(req.get_pending_deletes(), []) |
634 self.assertEquals(get_pending_deletes(req), []) |
630 self.assertEquals(req.get_pending_inserts(), []) |
635 self.assertEquals(get_pending_inserts(req), []) |
631 |
636 |
632 |
637 |
633 def test_add_inserts(self): |
638 def test_add_inserts(self): |
634 res, req = self.remote_call('add_pending_inserts', |
639 res, req = self.remote_call('add_pending_inserts', |
635 [('12', 'tags', '13'), ('12', 'tags', '14')]) |
640 [('12', 'tags', '13'), ('12', 'tags', '14')]) |
636 inserts = req.get_pending_inserts() |
641 inserts = get_pending_inserts(req) |
637 self.assertEquals(inserts, ['12:tags:13', '12:tags:14']) |
642 self.assertEquals(inserts, ['12:tags:13', '12:tags:14']) |
638 req.remove_pending_operations() |
643 req.remove_pending_operations() |
639 |
644 |
640 |
645 |
641 # silly tests |
646 # silly tests |