Example #1
0
    def test_ckeck_key_belong_user(self):
        self.tps.clean_up()
        self.tps.add_jdoe_in_users()

        security = Security(self.settings, self.request.session, 'jdoe',
                            '*****@*****.**', 'iamjohndoe', 'iamjohndoe')
        security.ckeck_key_belong_user("test")
Example #2
0
    def list_integration_jobs(self):

        # get userid
        security = Security(self.settings, self.session, self.session['username'], '', '', '')
        userid = security.get_user_id_by_username()

        database = DatabaseConnector(self.settings, self.session)
        query = '''
        SELECT id, filename, state, start, end, error
        FROM integration
        WHERE user_id=?
        '''

        res = database.execute_sql_query(query, (userid, ))
        result = []
        for job in res:
            dict_job = {}
            dict_job['id'] = job[0]
            dict_job['filename'] = job[1]
            dict_job['state'] = job[2]
            dict_job['start'] = job[3]
            dict_job['end'] = job[4]
            dict_job['error'] = job[5]
            result.append(dict_job)

        return result
Example #3
0
    def test_set_username_by_email(self):
        self.tps.clean_up()
        self.tps.add_jdoe_in_users()

        security = Security(self.settings, self.request.session, 'jdoe',
                            '*****@*****.**', 'iamjohndoe', 'iamjohndoe')
        security.set_username_by_email()
Example #4
0
    def test_get_owner_of_apikey(self):

        self.tps.clean_up()
        self.tps.add_jdoe_in_users()

        security = Security(self.settings, self.request.session, 'jdoe', '*****@*****.**', 'iamjohndoe', 'iamjohndoe')
        security.get_owner_of_apikey("test")
Example #5
0
    def list_query_jobs(self):


        # get userid
        security = Security(self.settings, self.session, self.session['username'], '', '', '')
        userid = security.get_user_id_by_username()

        database = DatabaseConnector(self.settings, self.session)
        query = '''
        SELECT id, state, start, end, data, file, preview, graph, variates, nrows, error
        FROM query
        WHERE user_id=?
        '''

        res = database.execute_sql_query(query, (userid, ))
        result = []
        for job in res:
            dict_job = {}
            dict_job['id'] = job[0]
            dict_job['state'] = job[1]
            dict_job['start'] = job[2]
            dict_job['end'] = job[3]
            dict_job['data'] = ''
            if job[4]:
                dict_job['data'] = json.loads(self.decode(job[4]))
            dict_job['file'] = job[5]
            dict_job['preview'] = job[6]
            dict_job['graph'] = urllib.parse.unquote(job[7])
            dict_job['variates'] = eval(self.decode(job[8]))
            dict_job['nrows'] = job[9]
            dict_job['error'] = job[10]
            result.append(dict_job)

        return result
Example #6
0
    def save_query_job(self, request_graph, variates):

        database = DatabaseConnector(self.settings, self.session)

        # get userid
        security = Security(self.settings, self.session, self.session['username'], '', '', '')
        userid = security.get_user_id_by_username()

        # Format strings
        request_graph = urllib.parse.quote(request_graph)
        variates = self.encode(str(variates))

        query = '''
        INSERT INTO query VALUES(
            NULL,
            ?,
            "wait",
            strftime('%s', 'now'),
            NULL,
            NULL,
            NULL,
            NULL,
            ?,
            ?,
            NULL,
            NULL
        )
        '''

        return database.execute_sql_query(query, (userid, request_graph, variates), get_id=True)
Example #7
0
    def test_get_sha256_pw(self):
        """Test get_sha256_pw"""

        security = Security(self.settings, self.request.session, 'jdoe',
                            '*****@*****.**', 'iamjohndoe', 'iamjohndoe')

        assert len(security.get_sha256_pw(
        )) == 64  # We cant predict the string cause there is random for salt
Example #8
0
    def test_get_owner_of_apikey(self):

        self.tps.clean_up()
        self.tps.add_jdoe_in_users()

        security = Security(self.settings, self.request.session, 'jdoe',
                            '*****@*****.**', 'iamjohndoe', 'iamjohndoe')
        security.get_owner_of_apikey("test")
Example #9
0
    def test_check_password_length(self):
        """Test for check_password_length"""

        # Test if long passwords return True
        security = Security(self.settings, self.request.session, 'jdoe', '*****@*****.**', 'iamjohndoe', 'iamjohndoe')
        assert security.check_password_length()

        # Test if short passwords return False
        security = Security(self.settings, self.request.session, 'jdoe', '*****@*****.**', 'a', 'a')
Example #10
0
    def test_check_passwords(self):
        """Test for check_passwords"""

        # Test if identical passwords return True
        security = Security(self.settings, self.request.session, 'jdoe', '*****@*****.**', 'iamjohndoe', 'iamjohndoe')
        assert security.check_passwords()

        # Test if different passwords return False
        security = Security(self.settings, self.request.session, 'jdoe', '*****@*****.**', 'iamjohndoe', 'second_wrong_password')
        assert not security.check_passwords()
Example #11
0
    def test_check_email(self):
        """Test for check_email"""

        # Test if good mail return True
        security = Security(self.settings, self.request.session, 'jdoe', '*****@*****.**', 'iamjohndoe', 'iamjohndoe')
        assert security.check_email()

        # Test if wrong email return False
        security = Security(self.settings, self.request.session, 'jdoe', 'wrong_email', 'iamjohndoe', 'iamjohndoe')
        assert not security.check_email()
Example #12
0
    def test_set_galaxy(self):
        """Test set_admin"""

        self.tps.clean_up()

        security = Security(self.settings, self.request.session, 'jdoe', '',
                            '', '')

        security.set_galaxy(True)

        assert self.request.session['galaxy']
Example #13
0
    def test_check_password_length(self):
        """Test for check_password_length"""

        # Test if long passwords return True
        security = Security(self.settings, self.request.session, 'jdoe',
                            '*****@*****.**', 'iamjohndoe', 'iamjohndoe')
        assert security.check_password_length()

        # Test if short passwords return False
        security = Security(self.settings, self.request.session, 'jdoe',
                            '*****@*****.**', 'a', 'a')
Example #14
0
    def test_set_galaxy(self):
        """Test set_admin"""


        self.tps.clean_up()

        security = Security(self.settings, self.request.session, 'jdoe', '', '', '')

        security.set_galaxy(True)

        assert self.request.session['galaxy']
Example #15
0
    def test_set_blocked(self):
        """Test set_blocked"""


        self.tps.clean_up()

        security = Security(self.settings, self.request.session, 'jdoe', '', '', '')

        assert self.request.session['blocked']

        security.set_blocked(False)

        assert not self.request.session['blocked']
Example #16
0
    def test_set_blocked(self):
        """Test set_blocked"""

        self.tps.clean_up()

        security = Security(self.settings, self.request.session, 'jdoe', '',
                            '', '')

        assert self.request.session['blocked']

        security.set_blocked(False)

        assert not self.request.session['blocked']
Example #17
0
    def test_persist_user(self):
        """Test persist_user

        Insert a user and test if get_number_of_user return 1
        """

        self.tps.clean_up()

        security = Security(self.settings, self.request.session, 'jdoe', '*****@*****.**', 'iamjohndoe', 'iamjohndoe')

        security.persist_user('http://localhost')

        assert security.get_number_of_users() == 1
Example #18
0
    def test_log_user(self):
        """Test log_user"""

        self.tps.clean_up()


        security = Security(self.settings, self.request.session, 'testlog', '*****@*****.**', 'testlog', 'testlog')

        security.log_user(self.request)

        assert self.request.session['username'] == 'testlog'
        assert not self.request.session['admin']
        assert self.request.session['blocked']
        assert self.request.session['graph'] == 'urn:sparql:test_askomics:testlog'
Example #19
0
    def test_persist_user(self):
        """Test persist_user

        Insert a user and test if get_number_of_user return 1
        """

        self.tps.clean_up()

        security = Security(self.settings, self.request.session, 'jdoe',
                            '*****@*****.**', 'iamjohndoe', 'iamjohndoe')

        security.persist_user('http://localhost')

        assert security.get_number_of_users() == 1
Example #20
0
    def test_get_admin_blocked_by_email(self):
        """Test get_admin_blocked_by_email"""

        self.tps.clean_up()

        self.tps.add_jdoe_in_users()
        self.tps.add_admin_in_users()

        security = Security(self.settings, self.request.session, 'jdoe', '*****@*****.**', 'iamjohndoe', 'iamjohndoe')

        assert security.get_admin_blocked_by_email() == {'blocked': False, 'admin': False}

        security = Security(self.settings, self.request.session, 'admin', '*****@*****.**', 'iamadmin', 'iamadmin')

        assert security.get_admin_blocked_by_email() == {'blocked': False, 'admin': True}
Example #21
0
    def test_update_email(self):
        """Test update_mail"""

        self.tps.clean_up()
        self.tps.add_jdoe_in_users()

        security = Security(self.settings, self.request.session, 'jdoe',
                            '*****@*****.**', 'iamjohndoe', 'iamjohndoe')

        security.update_email()

        assert self.tps.test_row_presence('users', 'email',
                                          ('*****@*****.**', ))
        assert not self.tps.test_row_presence('users', 'email',
                                              ('*****@*****.**', ))
Example #22
0
    def test_create_user_graph(self):
        """Test create_user_graph

        create the graph, and then test the presence of the triple
        """


        self.tps.clean_up()

        security = Security(self.settings, self.request.session, 'jdoe', '*****@*****.**', 'iamjohndoe', 'iamjohndoe')

        security.create_user_graph()

        assert self.tps.test_triple_presence('urn:sparql:test_askomics', '<urn:sparql:test_askomics:jdoe> rdfg:subGraphOf <urn:sparql:test_askomics>')
        assert not self.tps.test_triple_presence('urn:sparql:test_askomics', '<urn:sparql:test_askomics:jsmith> rdfg:subGraphOf <urn:sparql:test_askomics>')
Example #23
0
    def test_update_email(self):
        """Test update_mail"""

        self.tps.clean_up()
        self.tps.add_jdoe_in_users()

        security = Security(self.settings, self.request.session, 'jdoe', '*****@*****.**', 'iamjohndoe', 'iamjohndoe')

        security.update_email()

        graph = 'urn:sparql:test_askomics:users'
        triple = ':jdoe foaf:mbox <mailto:[email protected]>'
        assert self.tps.test_triple_presence(graph, triple)
        triple = ':jdoe foaf:mbox <mailto:[email protected]>'
        assert not self.tps.test_triple_presence(graph, triple)
Example #24
0
    def test_update_passwd(self):
        """Test update_mail"""

        self.tps.clean_up()
        self.tps.add_jdoe_in_users()

        security = Security(self.settings, self.request.session, 'jdoe', '*****@*****.**', 'newpasswd', 'newpasswd')

        security.update_passwd()

        graph = 'urn:sparql:test_askomics:users'
        triple = ':jdoe :password "' + security.get_sha256_pw() + '"'
        assert self.tps.test_triple_presence(graph, triple)
        triple = ':jdoe :password "23df582b51c3482b677c8eac54872b8bd0a49bfadc853628b8b8bd4806147b54"'
        assert not self.tps.test_triple_presence(graph, triple)
Example #25
0
    def test_log_user(self):
        """Test log_user"""

        self.tps.clean_up()

        security = Security(self.settings, self.request.session, 'testlog',
                            '*****@*****.**', 'testlog', 'testlog')

        security.log_user(self.request)

        assert self.request.session['username'] == 'testlog'
        assert not self.request.session['admin']
        assert self.request.session['blocked']
        assert self.request.session[
            'graph'] == 'urn:sparql:test_askomics:testlog'
Example #26
0
    def test_update_passwd(self):
        """Test update_mail"""

        self.tps.clean_up()
        self.tps.add_jdoe_in_users()

        security = Security(self.settings, self.request.session, 'jdoe',
                            '*****@*****.**', 'newpasswd', 'newpasswd')

        security.update_passwd()

        graph = 'urn:sparql:test_askomics:users'
        triple = ':jdoe :password "' + security.get_sha256_pw() + '"'
        assert self.tps.test_triple_presence(graph, triple)
        triple = ':jdoe :password "23df582b51c3482b677c8eac54872b8bd0a49bfadc853628b8b8bd4806147b54"'
        assert not self.tps.test_triple_presence(graph, triple)
Example #27
0
    def test_update_email(self):
        """Test update_mail"""

        self.tps.clean_up()
        self.tps.add_jdoe_in_users()

        security = Security(self.settings, self.request.session, 'jdoe',
                            '*****@*****.**', 'iamjohndoe', 'iamjohndoe')

        security.update_email()

        graph = 'urn:sparql:test_askomics:users'
        triple = ':jdoe foaf:mbox <mailto:[email protected]>'
        assert self.tps.test_triple_presence(graph, triple)
        triple = ':jdoe foaf:mbox <mailto:[email protected]>'
        assert not self.tps.test_triple_presence(graph, triple)
Example #28
0
    def test_update_passwd(self):
        """Test update_mail"""

        self.tps.clean_up()
        self.tps.add_jdoe_in_users()

        security = Security(self.settings, self.request.session, 'jdoe',
                            '*****@*****.**', 'newpasswd', 'newpasswd')

        security.update_passwd()

        assert self.tps.test_row_presence('users', 'password',
                                          (security.get_sha256_pw(), ))
        assert not self.tps.test_row_presence('users', 'password', (
            '23df582b51c3482b677c8eac54872b8bd0a49bfadc853628b8b8bd4806147b54',
        ))
Example #29
0
    def test_add_del_galaxy(self):
        self.tps.clean_up()
        self.tps.add_jdoe_in_users()

        security = Security(self.settings, self.request.session, 'jdoe',
                            '*****@*****.**', 'iamjohndoe', 'iamjohndoe')

        try:
            security.add_galaxy("http://test", "test")
            assert False
        except Exception as e:
            assert True

        security.get_galaxy_infos()
        security.check_galaxy()
        security.delete_galaxy()
Example #30
0
    def test_add_del_apikey(self):
        self.tps.clean_up()
        self.tps.add_jdoe_in_users()

        security = Security(self.settings, self.request.session, 'jdoe',
                            '*****@*****.**', 'iamjohndoe', 'iamjohndoe')
        security.delete_apikey("test")
        security.add_apikey("test")
        security.delete_apikey("test")
Example #31
0
    def test_get_admins_emails(self):
        """Test get_admins_emails

        Test the finction with nobody, 1, 2 non admin users, and with 1 and 2 admins users
        """

        self.tps.clean_up()

        security = Security(self.settings, self.request.session, '', '', '',
                            '')

        assert security.get_admins_emails() == []

        self.tps.add_jdoe_in_users()

        assert security.get_admins_emails() == []

        self.tps.add_jsmith_in_users()

        assert security.get_admins_emails() == []

        self.tps.add_admin_in_users()

        assert security.get_admins_emails() == ['*****@*****.**']

        self.tps.add_another_admin_in_users()

        res_emails = security.get_admins_emails()

        assert len(res_emails) == 2
        assert '*****@*****.**' in res_emails
        assert '*****@*****.**' in res_emails
Example #32
0
    def test_check_username_password(self):
        """Test check_username_password

        Insert jdoe and check the password
        """

        self.tps.clean_up()
        self.tps.add_jdoe_in_users()

        security = Security(self.settings, self.request.session, 'jdoe', '*****@*****.**', 'iamjohndoe', 'iamjohndoe')

        # try with the good password
        assert security.check_username_password()

        security = Security(self.settings, self.request.session, 'jdoe', '*****@*****.**', 'wrong_password', 'wrong_password')

        # Try with a wrong password
        assert not security.check_username_password()
Example #33
0
    def test_add_del_apikey(self):
        self.tps.clean_up()
        self.tps.add_jdoe_in_users()

        security = Security(self.settings, self.request.session, 'jdoe', '*****@*****.**', 'iamjohndoe', 'iamjohndoe')
        security.delete_apikey("test")
        security.add_apikey("test")
        security.delete_apikey("test")
Example #34
0
    def test_add_del_galaxy(self):
        self.tps.clean_up()
        self.tps.add_jdoe_in_users()

        security = Security(self.settings, self.request.session, 'jdoe', '*****@*****.**', 'iamjohndoe', 'iamjohndoe')

        try:
            security.add_galaxy("http://test","test")
            assert False
        except Exception as e:
            assert True

        security.get_galaxy_infos()
        security.check_galaxy()
        security.delete_galaxy()
Example #35
0
    def test_check_email_in_database(self):
        """test check_username_in_database

        Insert jdoe and test if jdoe is in database, then test
        jsmith is not in database
        """

        self.tps.clean_up()
        self.tps.add_jdoe_in_users()

        security = Security(self.settings, self.request.session, 'jdoe', '*****@*****.**', 'iamjohndoe', 'iamjohndoe')

        # test with same username
        assert security.check_email_in_database()

        security = Security(self.settings, self.request.session, 'jsmith', '*****@*****.**', 'iamjohnsmith', 'iamjohnsmith')

        # test with a different username
        assert not security.check_email_in_database()
Example #36
0
    def test_get_number_of_users(self):
        """Test get_number_of_users

        test the method with 0, 1 and 2 users
        """

        self.tps.clean_up()

        security = Security(self.settings, self.request.session, '', '', '', '')

        assert security.get_number_of_users() == 0

        self.tps.add_jdoe_in_users()

        assert security.get_number_of_users() == 1

        self.tps.add_jsmith_in_users()

        assert security.get_number_of_users() == 2
Example #37
0
    def test_get_number_of_users(self):
        """Test get_number_of_users

        test the method with 0, 1 and 2 users
        """

        self.tps.clean_up()

        security = Security(self.settings, self.request.session, '', '', '',
                            '')

        assert security.get_number_of_users() == 0

        self.tps.add_jdoe_in_users()

        assert security.get_number_of_users() == 1

        self.tps.add_jsmith_in_users()

        assert security.get_number_of_users() == 2
Example #38
0
    def save_integration_job(self, filename):

        database = DatabaseConnector(self.settings, self.session)

        # get userid
        security = Security(self.settings, self.session, self.session['username'], '', '', '')
        userid = security.get_user_id_by_username()

        query = '''
        INSERT INTO integration VALUES(
            NULL,
            ?,
            ?,
            "wait",
            strftime('%s', 'now'),
            NULL,
            NULL
        )
        '''

        return database.execute_sql_query(query, (userid, filename), get_id=True)
Example #39
0
    def test_create_user_graph(self):
        """Test create_user_graph

        create the graph, and then test the presence of the triple
        """

        self.tps.clean_up()

        security = Security(self.settings, self.request.session, 'jdoe',
                            '*****@*****.**', 'iamjohndoe', 'iamjohndoe')

        security.create_user_graph()

        assert self.tps.test_triple_presence(
            'urn:sparql:test_askomics',
            '<urn:sparql:test_askomics:jdoe> rdfg:subGraphOf <urn:sparql:test_askomics>'
        )
        assert not self.tps.test_triple_presence(
            'urn:sparql:test_askomics',
            '<urn:sparql:test_askomics:jsmith> rdfg:subGraphOf <urn:sparql:test_askomics>'
        )
Example #40
0
    def test_get_admins_emails(self):
        """Test get_admins_emails

        Test the finction with nobody, 1, 2 non admin users, and with 1 and 2 admins users
        """

        self.tps.clean_up()

        security = Security(self.settings, self.request.session, '', '', '', '')

        assert security.get_admins_emails() == []

        self.tps.add_jdoe_in_users()

        assert security.get_admins_emails() == []

        self.tps.add_jsmith_in_users()

        assert security.get_admins_emails() == []

        self.tps.add_admin_in_users()

        assert security.get_admins_emails() == ['*****@*****.**']

        self.tps.add_another_admin_in_users()

        res_emails = security.get_admins_emails()

        assert len(res_emails) == 2
        assert '*****@*****.**' in res_emails
        assert '*****@*****.**' in res_emails
Example #41
0
    def test_check_email(self):
        """Test for check_email"""

        # Test if good mail return True
        security = Security(self.settings, self.request.session, 'jdoe',
                            '*****@*****.**', 'iamjohndoe', 'iamjohndoe')
        assert security.check_email()

        # Test if wrong email return False
        security = Security(self.settings, self.request.session, 'jdoe',
                            'wrong_email', 'iamjohndoe', 'iamjohndoe')
        assert not security.check_email()
Example #42
0
    def test_check_passwords(self):
        """Test for check_passwords"""

        # Test if identical passwords return True
        security = Security(self.settings, self.request.session, 'jdoe',
                            '*****@*****.**', 'iamjohndoe', 'iamjohndoe')
        assert security.check_passwords()

        # Test if different passwords return False
        security = Security(self.settings, self.request.session, 'jdoe',
                            '*****@*****.**', 'iamjohndoe',
                            'second_wrong_password')
        assert not security.check_passwords()
Example #43
0
    def test_check_username_password(self):
        """Test check_username_password

        Insert jdoe and check the password
        """

        self.tps.clean_up()
        self.tps.add_jdoe_in_users()

        security = Security(self.settings, self.request.session, 'jdoe',
                            '*****@*****.**', 'iamjohndoe', 'iamjohndoe')

        # try with the good password
        assert security.check_username_password()

        security = Security(self.settings, self.request.session, 'jdoe',
                            '*****@*****.**', 'wrong_password',
                            'wrong_password')

        # Try with a wrong password
        assert not security.check_username_password()
Example #44
0
    def test_check_email_in_database(self):
        """test check_username_in_database

        Insert jdoe and test if jdoe is in database, then test
        jsmith is not in database
        """

        self.tps.clean_up()
        self.tps.add_jdoe_in_users()

        security = Security(self.settings, self.request.session, 'jdoe',
                            '*****@*****.**', 'iamjohndoe', 'iamjohndoe')

        # test with same username
        assert security.check_email_in_database()

        security = Security(self.settings, self.request.session, 'jsmith',
                            '*****@*****.**', 'iamjohnsmith',
                            'iamjohnsmith')

        # test with a different username
        assert not security.check_email_in_database()
Example #45
0
    def test_get_admin_blocked_by_email(self):
        """Test get_admin_blocked_by_email"""

        self.tps.clean_up()

        self.tps.add_jdoe_in_users()
        self.tps.add_admin_in_users()

        security = Security(self.settings, self.request.session, 'jdoe',
                            '*****@*****.**', 'iamjohndoe', 'iamjohndoe')

        assert security.get_admin_blocked_by_email() == {
            'blocked': False,
            'admin': False
        }

        security = Security(self.settings, self.request.session, 'admin',
                            '*****@*****.**', 'iamadmin', 'iamadmin')

        assert security.get_admin_blocked_by_email() == {
            'blocked': False,
            'admin': True
        }
Example #46
0
    def test_ckeck_key_belong_user(self):
        self.tps.clean_up()
        self.tps.add_jdoe_in_users()

        security = Security(self.settings, self.request.session, 'jdoe', '*****@*****.**', 'iamjohndoe', 'iamjohndoe')
        security.ckeck_key_belong_user("test")
Example #47
0
    def test_get_sha256_pw(self):
        """Test get_sha256_pw"""

        security = Security(self.settings, self.request.session, 'jdoe', '*****@*****.**', 'iamjohndoe', 'iamjohndoe')

        assert len(security.get_sha256_pw()) == 64 # We cant predict the string cause there is random for salt
Example #48
0
    def test_set_username_by_email(self):
        self.tps.clean_up()
        self.tps.add_jdoe_in_users()

        security = Security(self.settings, self.request.session, 'jdoe', '*****@*****.**', 'iamjohndoe', 'iamjohndoe')
        security.set_username_by_email()