245 def test_req_pending_insert(self): |
245 def test_req_pending_insert(self): |
246 """make sure req's pending insertions are taken into account""" |
246 """make sure req's pending insertions are taken into account""" |
247 tmpgroup = self.request().create_entity('CWGroup', name=u"test") |
247 tmpgroup = self.request().create_entity('CWGroup', name=u"test") |
248 user = self.user() |
248 user = self.user() |
249 req = self.request(**req_form(user)) |
249 req = self.request(**req_form(user)) |
250 req.set_session_data('pending_insert', set([(user.eid, 'in_group', tmpgroup.eid)])) |
250 req.session.data['pending_insert'] = set([(user.eid, 'in_group', tmpgroup.eid)]) |
251 path, params = self.expect_redirect_publish(req, 'edit') |
251 path, params = self.expect_redirect_publish(req, 'edit') |
252 usergroups = [gname for gname, in |
252 usergroups = [gname for gname, in |
253 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})] |
254 self.assertUnorderedIterableEquals(usergroups, ['managers', 'test']) |
254 self.assertUnorderedIterableEquals(usergroups, ['managers', 'test']) |
255 self.assertEquals(get_pending_inserts(req), []) |
255 self.assertEquals(get_pending_inserts(req), []) |
264 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})] |
265 # just make sure everything was set correctly |
265 # just make sure everything was set correctly |
266 self.assertUnorderedIterableEquals(usergroups, ['managers', 'test']) |
266 self.assertUnorderedIterableEquals(usergroups, ['managers', 'test']) |
267 # now try to delete the relation |
267 # now try to delete the relation |
268 req = self.request(**req_form(user)) |
268 req = self.request(**req_form(user)) |
269 req.set_session_data('pending_delete', set([(user.eid, 'in_group', groupeid)])) |
269 req.session.data['pending_delete'] = set([(user.eid, 'in_group', groupeid)]) |
270 path, params = self.expect_redirect_publish(req, 'edit') |
270 path, params = self.expect_redirect_publish(req, 'edit') |
271 usergroups = [gname for gname, in |
271 usergroups = [gname for gname, in |
272 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})] |
273 self.assertUnorderedIterableEquals(usergroups, ['managers']) |
273 self.assertUnorderedIterableEquals(usergroups, ['managers']) |
274 self.assertEquals(get_pending_deletes(req), []) |
274 self.assertEquals(get_pending_deletes(req), []) |
552 # self.assertEquals(ctrl.publish(), |
552 # self.assertEquals(ctrl.publish(), |
553 # simplejson.dumps(self.execute(rql).rows)) |
553 # simplejson.dumps(self.execute(rql).rows)) |
554 |
554 |
555 def test_remote_add_existing_tag(self): |
555 def test_remote_add_existing_tag(self): |
556 self.remote_call('tag_entity', self.john.eid, ['python']) |
556 self.remote_call('tag_entity', self.john.eid, ['python']) |
557 self.assertUnorderedIterableEquals([tname for tname, in self.execute('Any N WHERE T is Tag, T name N')], |
557 self.assertUnorderedIterableEquals( |
558 ['python', 'cubicweb']) |
558 [tname for tname, in self.execute('Any N WHERE T is Tag, T name N')], |
559 self.assertEquals(self.execute('Any N WHERE T tags P, P is CWUser, T name N').rows, |
559 ['python', 'cubicweb']) |
560 [['python']]) |
560 self.assertEquals( |
|
561 self.execute('Any N WHERE T tags P, P is CWUser, T name N').rows, |
|
562 [['python']]) |
561 |
563 |
562 def test_remote_add_new_tag(self): |
564 def test_remote_add_new_tag(self): |
563 self.remote_call('tag_entity', self.john.eid, ['javascript']) |
565 self.remote_call('tag_entity', self.john.eid, ['javascript']) |
564 self.assertUnorderedIterableEquals([tname for tname, in self.execute('Any N WHERE T is Tag, T name N')], |
566 self.assertUnorderedIterableEquals( |
565 ['python', 'cubicweb', 'javascript']) |
567 [tname for tname, in self.execute('Any N WHERE T is Tag, T name N')], |
566 self.assertEquals(self.execute('Any N WHERE T tags P, P is CWUser, T name N').rows, |
568 ['python', 'cubicweb', 'javascript']) |
567 [['javascript']]) |
569 self.assertEquals( |
|
570 self.execute('Any N WHERE T tags P, P is CWUser, T name N').rows, |
|
571 [['javascript']]) |
568 |
572 |
569 def test_pending_insertion(self): |
573 def test_pending_insertion(self): |
570 res, req = self.remote_call('add_pending_inserts', [['12', 'tags', '13']]) |
574 res, req = self.remote_call('add_pending_inserts', [['12', 'tags', '13']]) |
571 deletes = get_pending_deletes(req) |
575 deletes = get_pending_deletes(req) |
572 self.assertEquals(deletes, []) |
576 self.assertEquals(deletes, []) |