def test_updateMembersOfGroup(self):
        conn = self.rootconn
        uuid = conn._sessionUuid
        
        # create group
        params = {
            "name":"webadmin_test_group_private %s" % uuid,
            "description":"test group",
            "owners": [0L],
            "permissions":0
        }
        request = fakeRequest(method="post", params=params)
        gid = _createGroup(request, conn)
        
        ######################################
        # default group - helper
        params = {
            "name":"webadmin_test_default %s" % uuid,
            "description":"test group default",
            "owners": [0L],
            "permissions":0
        }
        request = fakeRequest(method="post", params=params)
        default_gid = _createGroup(request, conn)
        
        # create two new users
        params = {
            "omename":"webadmin_test_user1 %s" % uuid,
            "first_name":uuid,
            "middle_name": uuid,
            "last_name":uuid,
            "email":"*****@*****.**" % uuid,
            "institution":"Laboratory",
            "active":True,
            "default_group":default_gid,
            "other_groups":[default_gid],
            "password":"******",
            "confirmation":"123" 
        }
        request = fakeRequest(method="post", params=params)
        eid1 = _createExperimenter(request, conn)
        
        # create few new users
        params = {
            "omename":"webadmin_test_user2 %s" % uuid,
            "first_name":uuid,
            "middle_name": uuid,
            "last_name":uuid,
            "email":"*****@*****.**" % uuid,
            "institution":"Laboratory",
            "active":True,
            "default_group":default_gid,
            "other_groups":[default_gid],
            "password":"******",
            "confirmation":"123" 
        }
        request = fakeRequest(method="post", params=params)
        eid2 = _createExperimenter(request, conn)
        # make other users a member of the group
        
        # add them to group
        params = {
            'available':[],
            'members':[0,eid1,eid2]
        }
        request = fakeRequest(method="post", params=params)
        
        controller = BaseGroup(conn, gid)
        controller.containedExperimenters()
        form = ContainedExperimentersForm(initial={'members':controller.members, 'available':controller.available})
        if not form.is_valid():
            #available = form.cleaned_data['available']
            available = request.POST.getlist('available')
            #members = form.cleaned_data['members']
            members = request.POST.getlist('members')
            controller.setMembersOfGroup(available, members)        
            
        # check if updated
        controller = BaseGroup(conn, gid)
        controller.containedExperimenters()        
        self.assertEquals(sorted(params['members']), sorted([e.id for e in controller.members]))

        # remove them from the group
        params = {
            'available':[eid1,eid2],
            'members':[0]
        }
        request = fakeRequest(method="post", params=params)
        
        controller = BaseGroup(conn, gid)
        controller.containedExperimenters()
        form = ContainedExperimentersForm(initial={'members':controller.members, 'available':controller.available})
        if not form.is_valid():
            #available = form.cleaned_data['available']
            available = request.POST.getlist('available')
            #members = form.cleaned_data['members']
            members = request.POST.getlist('members')
            controller.setMembersOfGroup(available, members)
            
        # check if updated
        controller = BaseGroup(conn, gid)
        controller.containedExperimenters()
        self.assertEquals(sorted(params['members']), sorted([e.id for e in controller.members]))