def test_acc_get_uid_from_request(self):
        """webapikey - Login user from request using REST key"""
        path = '/search'
        params = 'ln=es&sc=1&c=Articles & Preprints&action_search=Buscar&p=ellis'

        self.assertEqual(0, len(web_api_key.show_web_api_keys(uid=self.id_admin)))
        web_api_key.create_new_web_api_key(self.id_admin, "Test key I")

        key_info = run_sql("SELECT id FROM webapikey WHERE id_user=%s", (self.id_admin,))
        url = web_api_key.build_web_request(path, params, api_key=key_info[0][0])
        url = string.split(url, '?')
        uid = web_api_key.acc_get_uid_from_request(url[0], url[1])
        self.assertEqual(uid, self.id_admin)

        url = web_api_key.build_web_request(path, params, api_key=key_info[0][0])
        url += "123" # corrupt the key
        url = string.split(url, '?')
        uid = web_api_key.acc_get_uid_from_request(url[0], url[1])
        self.assertEqual(uid, -1)

        path = '/bad'
        uid = web_api_key.acc_get_uid_from_request(path, "")
        self.assertEqual(uid, -1)
        params = { 'nocache': 'yes', 'limit': 123 }
        url = web_api_key.build_web_request(path, params, api_key=key_info[0][0])
        url = string.split(url, '?')
        uid = web_api_key.acc_get_uid_from_request(url[0], url[1])
        self.assertEqual(uid, -1)

        run_sql("DELETE FROM webapikey")
    def setUp(self):
        from random import randint
        from invenio.web_api_key import create_new_web_api_key, \
            get_available_web_api_keys
        from invenio.webdeposit_load_deposition_types import \
            deposition_metadata
        # self.clear_tables()

        create_new_web_api_key(1, key_description='webdeposit_api_testing')
        keys = get_available_web_api_keys(1)
        self.apikey = keys[0].id

        # Test random deposition
        self.deposition = deposition_metadata.keys()[randint(0, len(deposition_metadata.keys()) - 1)]
        super(TestWebDepositAPI, self).setUp()
Beispiel #3
0
    def test_create_remove_show_key(self):
        """apikey - create/list/delete REST key"""
        self.assertEqual(0,
                         len(web_api_key.show_web_api_keys(uid=self.id_admin)))
        web_api_key.create_new_web_api_key(self.id_admin, "Test key I")
        web_api_key.create_new_web_api_key(self.id_admin, "Test key II")
        web_api_key.create_new_web_api_key(self.id_admin, "Test key III")
        web_api_key.create_new_web_api_key(self.id_admin, "Test key IV")
        web_api_key.create_new_web_api_key(self.id_admin, "Test key V")
        self.assertEqual(5,
                         len(web_api_key.show_web_api_keys(uid=self.id_admin)))
        self.assertEqual(
            5,
            len(
                web_api_key.show_web_api_keys(uid=self.id_admin,
                                              diff_status='')))
        keys_info = web_api_key.show_web_api_keys(uid=self.id_admin)
        web_api_key.mark_web_api_key_as_removed(keys_info[0][0])
        self.assertEqual(4,
                         len(web_api_key.show_web_api_keys(uid=self.id_admin)))
        self.assertEqual(
            5,
            len(
                web_api_key.show_web_api_keys(uid=self.id_admin,
                                              diff_status='')))

        run_sql("UPDATE webapikey SET status='WARNING' WHERE id=%s",
                (keys_info[1][0], ))
        run_sql("UPDATE webapikey SET status='REVOKED' WHERE id=%s",
                (keys_info[2][0], ))

        self.assertEqual(4,
                         len(web_api_key.show_web_api_keys(uid=self.id_admin)))
        self.assertEqual(
            5,
            len(
                web_api_key.show_web_api_keys(uid=self.id_admin,
                                              diff_status='')))

        run_sql("DELETE FROM webapikey")
    def test_create_remove_show_key(self):
        """apikey - create/list/delete REST key"""
        self.assertEqual(0, len(web_api_key.show_web_api_keys(uid=self.id_admin)))
        web_api_key.create_new_web_api_key(self.id_admin, "Test key I")
        web_api_key.create_new_web_api_key(self.id_admin, "Test key II")
        web_api_key.create_new_web_api_key(self.id_admin, "Test key III")
        web_api_key.create_new_web_api_key(self.id_admin, "Test key IV")
        web_api_key.create_new_web_api_key(self.id_admin, "Test key V")
        self.assertEqual(5, len(web_api_key.show_web_api_keys(uid=self.id_admin)))
        self.assertEqual(5, len(web_api_key.show_web_api_keys(uid=self.id_admin, diff_status='')))
        keys_info = web_api_key.show_web_api_keys(uid=self.id_admin)
        web_api_key.mark_web_api_key_as_removed(keys_info[0][0])
        self.assertEqual(4, len(web_api_key.show_web_api_keys(uid=self.id_admin)))
        self.assertEqual(5, len(web_api_key.show_web_api_keys(uid=self.id_admin,diff_status='')))

        run_sql("UPDATE webapikey SET status='WARNING' WHERE id=%s", (keys_info[1][0],))
        run_sql("UPDATE webapikey SET status='REVOKED' WHERE id=%s", (keys_info[2][0],))

        self.assertEqual(4, len(web_api_key.show_web_api_keys(uid=self.id_admin)))
        self.assertEqual(5, len(web_api_key.show_web_api_keys(uid=self.id_admin, diff_status='')))

        run_sql("DELETE FROM webapikey")
Beispiel #5
0
    def test_acc_get_uid_from_request(self):
        """webapikey - Login user from request using REST key"""
        path = '/search'
        params = 'ln=es&sc=1&c=Articles & Preprints&action_search=Buscar&p=ellis'

        self.assertEqual(0,
                         len(web_api_key.show_web_api_keys(uid=self.id_admin)))
        web_api_key.create_new_web_api_key(self.id_admin, "Test key I")

        key_info = run_sql("SELECT id FROM webapikey WHERE id_user=%s",
                           (self.id_admin, ))
        url = web_api_key.build_web_request(path,
                                            params,
                                            api_key=key_info[0][0])
        url = string.split(url, '?')
        uid = web_api_key.acc_get_uid_from_request(url[0], url[1])
        self.assertEqual(uid, self.id_admin)

        url = web_api_key.build_web_request(path,
                                            params,
                                            api_key=key_info[0][0])
        url += "123"  # corrupt the key
        url = string.split(url, '?')
        uid = web_api_key.acc_get_uid_from_request(url[0], url[1])
        self.assertEqual(uid, -1)

        path = '/bad'
        uid = web_api_key.acc_get_uid_from_request(path, "")
        self.assertEqual(uid, -1)
        params = {'nocache': 'yes', 'limit': 123}
        url = web_api_key.build_web_request(path,
                                            params,
                                            api_key=key_info[0][0])
        url = string.split(url, '?')
        uid = web_api_key.acc_get_uid_from_request(url[0], url[1])
        self.assertEqual(uid, -1)

        run_sql("DELETE FROM webapikey")