예제 #1
0
 def setUp(self):
     super(ActionLogTestCase, self).setUp()
     self.cli = Client()
     req = {'name': self.actor_env_name,
         'su_email': self.actor_email, 'su_password': self.actor_password}
     self.cli.add_environment(**req)
예제 #2
0
class ActionLogTestCase(ActorLogicTestCase, ActionsLogTester):
    def setUp(self):
        super(ActionLogTestCase, self).setUp()
        self.cli = Client()
        req = {'name': self.actor_env_name,
            'su_email': self.actor_email, 'su_password': self.actor_password}
        self.cli.add_environment(**req)

    def login_actor(self):
        req = {'environment_name': self.actor_env_name,
            'email': self.actor_email, 'password': self.actor_password}
        resp = self.cli.login(**req)
        self.check_response_ok(resp)
        return resp['session_id']

    def test_login(self):
        action = 'login'
        sess_id = self.login_actor()
        logs_num = self._count_records(sess_id, action)

        self.login_actor()
        req = {'session_id': sess_id, 'filter_params': {'action': action},
            'paging_params': {}, 'ordering_params': []}
        resp = self.get_action_logs(**req)
        self.check_response_ok(resp)
        for a_l in resp['action_logs']:
            self.assertNotEquals(None, a_l['session_id'])
            self.assertEquals('login', a_l['action'])
        self.assertEquals(logs_num + 1, self._count_records(sess_id, action))

    def test_login_failed(self):
        action = 'login'
        sess_id = self.login_actor()
        req_al = {'session_id': sess_id, 'filter_params': {'action': action},
            'paging_params': {}, 'ordering_params': []}
        resp = self.get_action_logs(**req_al)
        self.check_response_ok(resp)
        logs_num = len(resp['action_logs'])

        req_login = {'environment_name': self.actor_env_name,
            'email': '*****@*****.**', 'password': '******'}
        resp = self.cli.login(**req_login)
        self.assertEquals('error', resp['status'])
        resp = self.get_action_logs(**req_al)
        self.check_response_ok(resp)
        self.assertEquals(logs_num + 1, len(resp['action_logs']))

    def test_logout(self):
        action = 'logout'
        sess_id = self.login_actor()
        logs_num = self._count_records(sess_id, action)
        req = {'session_id': sess_id}
        self.cli.logout(**req)
        sess_id = self.login_actor()
        self.assertEquals(logs_num + 1, self._count_records(sess_id, action))
        # Logout with not existed session not logged
        self.cli.logout(**req)
        self.assertEquals(logs_num + 1, self._count_records(sess_id, action))

    def test_modify_environment(self):
        action = 'modify_environment'
        sess_id = self.login_actor()
        req = {'session_id': sess_id, 'new_name': 'new_name'}
        self._logged_action(action, req)

    def test_modify_environment_failure(self):
        sess_id = self.login_actor()
        l, p = '*****@*****.**', 'p'
        req = {'session_id': sess_id, 'email': l, 'password': p}
        resp = self.cli.add_user(**req)
        self.check_response_ok(resp)

        req = {'environment_name': self.actor_env_name,
            'email': l, 'password': p}
        resp = self.cli.login(**req)
        self.check_response_ok(resp)
        u_sess_id = resp['session_id']

        action = 'modify_environment'
        logs_num = self._count_records(sess_id, action)
        req = {'session_id': u_sess_id, 'new_name': 'new_name'}
        resp = self.cli.modify_environment(**req)
        self.assertEquals('error', resp['status'])
        self.assertEquals(logs_num + 1, self._count_records(sess_id, action))

    def test_get_environment(self):
        action = 'get_environment'
        sess_id = self.login_actor()
        self._not_logged_action(action, sess_id, {})

    def test_add_service(self):
        action = 'add_service'
        sess_id = self.login_actor()
        req = {'session_id': sess_id, 'name': 'n', 'type': 't',
            'properties': ['a', 'b', 'c']}
        self._logged_action(action, req)

    def test_modify_service(self):
        sess_id = self.login_actor()
        req = {'session_id': sess_id, 'name': 'n', 'type': 't',
            'properties': ['a', 'b', 'c']}
        resp = self.cli.add_service(**req)
        self.check_response_ok(resp)
        srv_id = resp['id']

        action = 'modify_service'
        req = {'session_id': sess_id, 'id': srv_id, 'new_name': 'lala',
            'new_is_active': False}
        self._logged_action(action, req)

    def test_get_services(self):
        action = 'get_services'
        sess_id = self.login_actor()
        self._not_logged_filtering_action(action, sess_id)

    def test_delete_service(self):
        sess_id = self.login_actor()
        req = {'session_id': sess_id, 'name': 'n', 'type': 't',
            'properties': ['a', 'b', 'c']}
        resp = self.cli.add_service(**req)
        self.check_response_ok(resp)
        srv_id = resp['id']

        action = 'delete_service'
        req = {'session_id': sess_id, 'id': srv_id}
        self._logged_action(action, req)

    def test_delete_unknown_service(self):
        sess_id = self.login_actor()
        action = 'delete_service'
        req = {'session_id': sess_id, 'id': 88888}
        self._logged_action(action, req, check_resp=False)

    def test_add_group(self):
        action = 'add_group'
        sess_id = self.login_actor()
        req = {'session_id': sess_id, 'name': 'n',
            'rights': [{'service_id': 1, 'properties': ['a', 'b']}]}
        self._logged_action(action, req)

    def test_modify_group(self):
        sess_id = self.login_actor()
        req = {'session_id': sess_id, 'name': 'n',
            'rights': [{'service_id': 1, 'properties': ['a', 'b']}]}
        resp = self.cli.add_group(**req)
        self.check_response_ok(resp)
        grp_id = resp['id']

        action = 'modify_group'
        req = {'session_id': sess_id, 'id': grp_id,
            'new_rights': [{'service_id': 1, 'properties': ['a']}]}
        self._logged_action(action, req)

    def test_delete_group(self):
        sess_id = self.login_actor()
        req = {'session_id': sess_id, 'name': 'n',
            'rights': [{'service_id': 1, 'properties': ['a', 'b']}]}
        resp = self.cli.add_group(**req)
        self.check_response_ok(resp)
        grp_id = resp['id']

        action = 'delete_group'
        req = {'session_id': sess_id, 'id': grp_id}
        self._logged_action(action, req)

    def test_get_groups(self):
        action = 'get_groups'
        sess_id = self.login_actor()
        self._not_logged_filtering_action(action, sess_id)

    def _get_user_by_login(self, sess_id, email):
        req = {'session_id': sess_id, 'filter_params': {'email': email},
            'paging_params': {}}
        resp = self.get_users(**req)
        self.check_response_ok(resp)
        users = resp['users']
        self.assertEquals(1, len(users))
        return users[0]

    def test_add_user(self):
        action = 'add_user'
        sess_id = self.login_actor()
        email = '*****@*****.**'
        req = {'session_id': sess_id, 'email': email, 'password': '******'}
        self._logged_action(action, req)

        # checking subject user ids are set
        user = self._get_user_by_login(sess_id, email)
        self._check_subject_users_ids_set(sess_id, action, user['id'])

    def test_register_user(self):
        action = 'register_user'
        email = '*****@*****.**'
        req = {'email': email, 'password': '******', 'environment_name': self.actor_env_name}
        self.sess_id = self.login_actor()
        try:
            self._logged_action(action, req)
            self._logged_action(action, req, check_resp=False)
        finally:
            self.sess_id = None

    def test_get_users(self):
        action = 'get_users'
        sess_id = self.login_actor()
        self._not_logged_filtering_action(action, sess_id)

    def test_get_user_self(self):
        action = 'get_user_self'
        sess_id = self.login_actor()
        self._not_logged_action(action, sess_id, {})

    def test_get_user_rights(self):
        action = 'get_user_rights'
        sess_id = self.login_actor()
        self._not_logged_action(action, sess_id, {})

    def test_modify_user_self(self):
        action = 'modify_user_self'
        sess_id = self.login_actor()
        req = {'session_id': sess_id, 'old_password': self.actor_password,
            'new_password': '******'}
        self._logged_action(action, req)

    def test_modify_users(self):
        sess_id = self.login_actor()
        req = {'session_id': sess_id, 'email': '*****@*****.**', 'password': '******'}
        resp = self.cli.add_user(**req)
        self.check_response_ok(resp)
        u_id = resp['id']

        action = 'modify_users'
        new_email = '*****@*****.**'
        req = {'session_id': sess_id, 'ids': [u_id],
            'new_email': new_email}
        self._logged_action(action, req)

        # checking subject user ids are set
        user = self._get_user_by_login(sess_id, new_email)
        self._check_subject_users_ids_set(sess_id, action, user['id'])

    def test_modify_users_failure_logged(self):
        sess_id = self.login_actor()
        req = {'session_id': sess_id, 'paging_params': {},
            'filter_params': {'email': self.actor_email}}
        resp = self.cli.get_users(**req)
        self.check_response_ok(resp)
        users = resp['users']
        self.assertEquals(1, len(users))
        u = users[0]

        u_id = u['id']
        action = 'modify_users'
        logs_num = self._count_self_records(sess_id, action)
        req = {'session_id': sess_id, 'ids': [u_id],
            'new_groups_ids': []}
        resp = self.cli.modify_users(**req)
        self.assertEquals('error', resp['status'])
        self.assertEquals(logs_num + 1,
            self._count_self_records(sess_id, action))
        self._check_subject_users_ids_set(sess_id, action, u_id)

    def test_get_action_logs(self):
        action = 'get_action_logs'
        sess_id = self.login_actor()
        self._not_logged_filtering_action(action, sess_id)

    def test_get_action_logs_self(self):
        action = 'get_action_logs_self'
        sess_id = self.login_actor()
        self._not_logged_filtering_action(action, sess_id)
        logins_num = self._count_self_records(sess_id, 'login')
        req = {'session_id': sess_id, 'email': '*****@*****.**', 'password': '******'}
        self._logged_action('add_user', req)
        req = {'environment_name': self.actor_env_name, 'email': '*****@*****.**',
            'password': '******'}
        resp = self.cli.login(**req)
        self.check_response_ok(resp)
        self.assertEquals(logins_num,
            self._count_self_records(sess_id, 'login'))

    def test_check_access(self):
        action = 'check_access'
        sess_id = self.login_actor()
        req = {'session_id': sess_id, 'service_type': Service.TYPE_AUTH,
            'property': 'check_access'}
        self._not_logged_action(action, sess_id, req)
        req = {'session_id': sess_id, 'service_type': Service.TYPE_AUTH,
            'property': 'fake'}
        self._not_logged_action(action, sess_id, req)
        req = {'session_id': sess_id, 'service_type': 'fake',
            'property': 'fake'}
        self._not_logged_action(action, sess_id, req)

    def test_check_user_exist(self):
        action = 'check_user_exist'
        sess_id = self.login_actor()
        req = {'session_id': sess_id, 'id': 1}
        self._not_logged_action(action, sess_id, req)

    def test_get_notifications(self):
        action = 'get_notifications'
        sess_id = self.login_actor()
        req = {'session_id': sess_id, 'filter_params': {},
            'paging_params': {}, 'ordering_params': []}
        self._not_logged_action(action, sess_id, req)

    def test_modify_notifications(self):
        sess_id = self.login_actor()
        notifs = self.get_notifications_info(sess_id)
        notif = notifs[0]
        n_id = notif['id']

        action = 'modify_notifications'
        req = {'session_id': sess_id, 'ids': [n_id],
            'new_is_active': not notif['is_active']}
        self._logged_action(action, req)

    def test_reset_notifications(self):
        sess_id = self.login_actor()
        notifs = self.get_notifications_info(sess_id)
        notif = notifs[0]
        n_id = notif['id']

        action = 'modify_notifications'
        req = {'session_id': sess_id, 'ids': [n_id],
            'new_is_active': not notif['is_active']}
        self._logged_action(action, req)

        action = 'reset_notifications'
        req = {'session_id': sess_id, 'ids': [n_id]}
        self._logged_action(action, req)

    def test_load_new_notifications(self):
        sess_id = self.login_actor()
        action = 'load_new_notifications'
        req = {'session_id': sess_id}
        self._logged_action(action, req)

    def test_set_password_self(self):
        sess_id = self.login_actor()
        action = 'set_password_self'
        req = {'session_id': sess_id, 'new_password': '******'}
        self._logged_action(action, req)