예제 #1
0
 def get_user_information(self, session_id):
     serialized_session_id = {'id': session_id.id}
     user_information = self._core_call('get_user_information',
                                        session_id=serialized_session_id)
     user = User(user_information['login'], user_information['full_name'],
                 user_information['email'],
                 user_information['role']['name'])
     user.remainder = user_information
     return user
def _generate_experiment_uses():
    exp1, exp2 = _generate_two_experiments()
    use1 = ExperimentUse(
        datetime.datetime.utcnow(), datetime.datetime.utcnow(), exp1,
        User("jaime.irurzun", "Jaime Irurzun", "*****@*****.**",
             Role("student")), "unknown")
    use2 = ExperimentUse(
        datetime.datetime.utcnow(), datetime.datetime.utcnow(), exp2,
        User("pablo.orduna", "Pablo Orduna", "*****@*****.**",
             Role("student")), "unknown")
    return (use1, use2), 2
예제 #3
0
    def get_user(self, credentials):

        if not M2CRYPTO_AVAILABLE:
            raise Exception("M2Crypto module not available")

        user_id, email = process_cookie(credentials)

        login = '******' % email
        full_name = user_id  # We don't know the full name
        return User(login, full_name, email, StudentRole())
예제 #4
0
        def test_get_user_information(self):
            self.configurationManager._set_value(self.rfs.FACADE_ZSI_PORT, 14131)
            self.rfs.start()
            try:
                wds = UserProcessingWebLabDeustoSOAP("http://*****:*****@deusto.es',
                        Role("student")
                    )
                self.mock_server.return_values['get_user_information'] = expected_user_information

                user_information = wds.get_user_information(expected_sess_id)

                self.assertEquals(
                        expected_sess_id.id,
                        self.mock_server.arguments['get_user_information'][0]
                    )
                self.assertEquals(
                        expected_user_information.full_name,    
                        user_information.full_name
                    )
                self.assertEquals(
                        expected_user_information.login,    
                        user_information.login
                    )
                self.assertEquals(
                        expected_user_information.email,
                        user_information.email
                    )
                self.assertEquals(
                        expected_user_information.role.name,
                        user_information.role.name
                    )
            finally:
                self.rfs.stop()
    def test_return_get_user_information(self):
        expected_sess_id = {'id': "whatever"}

        expected_user_information = User('porduna', 'Pablo Orduna',
                                         '*****@*****.**', Role("student"))

        self.mock_ups.return_values[
            'get_user_information'] = expected_user_information

        user_information = self.rfm.get_user_information(expected_sess_id)

        self.assertEquals(
            expected_sess_id['id'],
            self.mock_ups.arguments['get_user_information'][0].id)
        self.assertEquals(expected_user_information.login,
                          user_information.login)
        self.assertEquals(expected_user_information.full_name,
                          user_information.full_name)
        self.assertEquals(expected_user_information.email,
                          user_information.email)
        self.assertEquals(expected_user_information.role.name,
                          user_information.role.name)
예제 #6
0
 def get_user(self, credentials):
     payload = credentials[credentials.find('.') + 1:]
     payload = payload.replace('-', '+').replace('_', '/')
     payload = payload + "=="
     try:
         json_content = base64.decodestring(payload)
         data = json.loads(json_content)
         oauth_token = data['oauth_token']
         req = urllib2.urlopen(FACEBOOK_TOKEN_VALIDATOR % oauth_token)
         encoding = req.headers['content-type'].split('charset=')[-1]
         ucontent = unicode(req.read(), encoding)
         user_data = json.loads(ucontent)
         if not user_data['verified']:
             raise Exception("Not verified user!!!")
         login = '******' % user_data['id']
         full_name = user_data['name']
         email = user_data.get('email', '<not provided>')
         user = User(login, full_name, email, StudentRole())
         return user
     except Exception as e:
         log.log(Facebook, log.level.Warning, "Error: %s" % e)
         log.log_exc(Facebook, log.level.Info)
         return ""
예제 #7
0
def list_all_users():
    ups = _find_ups()

    session_mgr = ups._session_manager
    session_ids = session_mgr.list_sessions()
    global_sid = ups._alive_users_collection._experiments_server_session_id

    sessions = []
    for session_id in session_ids:
        if session_id == global_sid:
            continue
        try:
            session = session_mgr.get_session(session_id)
        except SessionErrors.SessionError:
            continue
        if 'user_information' in session:
            user_info = session['user_information']
        else:
            # It may happen if we list the experiments before gathering this information
            user_info = User('<unknown>', '<unknown>', '<unknown>',
                             Role("student"))
        last = session.get('latest_timestamp') or 0
        sessions.append((session_id, user_info, last))
    return sessions
예제 #8
0
 def retrieve_user_information(self, db_session_id):
     return User("student2", "Name of student 2", "*****@*****.**", Role("student"))
예제 #9
0
 def get_user_information(self, session_id):
     serialized_session_id     = {'id' : session_id.id}
     user_information = self._core_call('get_user_information', session_id = serialized_session_id)
     user = User(user_information['login'], user_information['full_name'], user_information['email'], user_information['role']['name'])
     user.remainder = user_information
     return user
예제 #10
0
    def test_get_experiment_uses_without_criterias(self):
        PORT = 11227
        self.configurationManager._set_value(
            AdminFacadeServer.ADMIN_FACADE_JSON_PORT, PORT)
        self.client = SmartGwtClient(PORT)
        self.rfs.start()
        try:
            dt1 = datetime.datetime(2010, 10, 4, 11, 00, 00)
            dt2 = datetime.datetime(2010, 10, 5, 12, 00, 00)

            user1 = User("jaime.irurzun", "Jaime Irurzun",
                         "*****@*****.**", Role("student"))
            user2 = User("pablo.orduna", "Pablo Orduna",
                         "*****@*****.**", Role("student"))

            exp = Experiment("ud-pld",
                             ExperimentCategory("PLD experiments"),
                             dt1,
                             dt2,
                             id=1)

            experiment_use1 = ExperimentUse(dt1,
                                            dt2,
                                            exp,
                                            user1,
                                            "unknown",
                                            id=4)
            experiment_use2 = ExperimentUse(dt1,
                                            dt2,
                                            exp,
                                            user2,
                                            "unknown",
                                            id=5)

            self.rfm_json.get_experiment_uses({'id': REAL_ID}, None, None,
                                              None, None, 0, 50, [])

            self.mocker.result(([experiment_use1, experiment_use2], 2))
            self.mocker.replay()

            experiment_uses_response = self.client.get_experiment_uses(
                REAL_ID, [], None, 0, 50, [], 'exact')

            self.assertEquals(0, experiment_uses_response['status'])
            self.assertEquals(0, experiment_uses_response['startRows'])
            self.assertEquals(2, experiment_uses_response['endRow'])
            self.assertEquals(2, experiment_uses_response['totalRows'])

            experiment_uses = experiment_uses_response['data']

            self.assertEquals(2, len(experiment_uses))

            self.assertEquals(4, experiment_uses[0]['id'])
            self.assertEquals('2010-10-04T11:00:00',
                              experiment_uses[0]['start_date'])
            self.assertEquals('2010-10-05T12:00:00',
                              experiment_uses[0]['end_date'])
            self.assertEquals(user1.login, experiment_uses[0]['agent_login'])
            self.assertEquals(user1.full_name,
                              experiment_uses[0]['agent_name'])
            self.assertEquals(user1.email, experiment_uses[0]['agent_email'])
            self.assertEquals('ud-pld', experiment_uses[0]['experiment_name'])
            self.assertEquals('PLD experiments',
                              experiment_uses[0]['experiment_category'])
            self.assertEquals('unknown', experiment_uses[0]['origin'])

            self.assertEquals(5, experiment_uses[1]['id'])
            self.assertEquals('2010-10-04T11:00:00',
                              experiment_uses[1]['start_date'])
            self.assertEquals('2010-10-05T12:00:00',
                              experiment_uses[1]['end_date'])
            self.assertEquals(user2.login, experiment_uses[1]['agent_login'])
            self.assertEquals(user2.full_name,
                              experiment_uses[1]['agent_name'])
            self.assertEquals(user2.email, experiment_uses[1]['agent_email'])
            self.assertEquals('ud-pld', experiment_uses[1]['experiment_name'])
            self.assertEquals('PLD experiments',
                              experiment_uses[1]['experiment_category'])
            self.assertEquals('unknown', experiment_uses[1]['origin'])

            self.mocker.verify()
        finally:
            self.rfs.stop()
예제 #11
0
    def test_get_experiment_uses(self):
        PORT = 11226
        self.configurationManager._set_value(
            AdminFacadeServer.ADMIN_FACADE_JSON_PORT, PORT)
        self.client = SmartGwtClient(PORT)
        self.rfs.start()
        try:

            criterias = []
            criterias.append({
                'operator': 'greaterOrEqual',
                'fieldName': 'start_date',
                'value': '2010-10-03T22:00:00'
            })
            criterias.append({
                'operator': 'lessOrEqual',
                'fieldName': 'end_date',
                'value': '2010-10-08T21:59:59'
            })
            criterias.append({
                'operator': 'equals',
                'fieldName': 'group',
                'value': 2
            })
            criterias.append({
                'operator': 'equals',
                'fieldName': 'experiment_id',
                'value': 9
            })

            from_date = datetime.datetime(2010, 10, 3, 22, 00, 00)
            to_date = datetime.datetime(2010, 10, 8, 21, 59, 59)

            dt1 = datetime.datetime(2010, 10, 4, 11, 00, 00)
            dt2 = datetime.datetime(2010, 10, 5, 12, 00, 00)

            user1 = User("jaime.irurzun", "Jaime Irurzun",
                         "*****@*****.**", Role("student"))
            user2 = User("pablo.orduna", "Pablo Orduna",
                         "*****@*****.**", Role("student"))

            exp = Experiment("ud-pld",
                             ExperimentCategory("PLD experiments"),
                             dt1,
                             dt2,
                             id=1)

            experiment_use1 = ExperimentUse(dt1,
                                            dt2,
                                            exp,
                                            user1,
                                            "unknown",
                                            id=4)
            experiment_use2 = ExperimentUse(dt1,
                                            dt2,
                                            exp,
                                            user2,
                                            "unknown",
                                            id=5)

            self.rfm_json.get_experiment_uses({'id': REAL_ID}, from_date,
                                              to_date, 2, 9, 0, 50,
                                              ['start_date'])

            self.mocker.result(([experiment_use1, experiment_use2], 2))
            self.mocker.replay()

            experiment_uses_response = self.client.get_experiment_uses(
                REAL_ID, criterias, 'and', 0, 50, ['start_date'], 'exact')

            self.assertEquals(0, experiment_uses_response['status'])
            self.assertEquals(0, experiment_uses_response['startRows'])
            self.assertEquals(2, experiment_uses_response['endRow'])
            self.assertEquals(2, experiment_uses_response['totalRows'])

            experiment_uses = experiment_uses_response['data']

            self.assertEquals(2, len(experiment_uses))

            self.assertEquals(4, experiment_uses[0]['id'])
            self.assertEquals('2010-10-04T11:00:00',
                              experiment_uses[0]['start_date'])
            self.assertEquals('2010-10-05T12:00:00',
                              experiment_uses[0]['end_date'])
            self.assertEquals(user1.login, experiment_uses[0]['agent_login'])
            self.assertEquals(user1.full_name,
                              experiment_uses[0]['agent_name'])
            self.assertEquals(user1.email, experiment_uses[0]['agent_email'])
            self.assertEquals('ud-pld', experiment_uses[0]['experiment_name'])
            self.assertEquals('PLD experiments',
                              experiment_uses[0]['experiment_category'])
            self.assertEquals('unknown', experiment_uses[0]['origin'])

            self.assertEquals(5, experiment_uses[1]['id'])
            self.assertEquals('2010-10-04T11:00:00',
                              experiment_uses[1]['start_date'])
            self.assertEquals('2010-10-05T12:00:00',
                              experiment_uses[1]['end_date'])
            self.assertEquals(user2.login, experiment_uses[1]['agent_login'])
            self.assertEquals(user2.full_name,
                              experiment_uses[1]['agent_name'])
            self.assertEquals(user2.email, experiment_uses[1]['agent_email'])
            self.assertEquals('ud-pld', experiment_uses[1]['experiment_name'])
            self.assertEquals('PLD experiments',
                              experiment_uses[1]['experiment_category'])
            self.assertEquals('unknown', experiment_uses[1]['origin'])

            self.mocker.verify()
        finally:
            self.rfs.stop()
 def _generate_users(self):
     user1 = User("Login", "FullName", "*****@*****.**", Role("student"))
     user2 = User("Login2", "FullName2", "*****@*****.**", Role("administrator"))
     return user1, user2
예제 #13
0
 def _parse_user(self, holder):
     return User(holder['login'], holder['full_name'], holder['email'],
                 holder['role'])
예제 #14
0
 def _parse_user(self, holder):
     return User(holder.login, holder.full_name, holder.email,
                 holder.role.name)