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")
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
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()
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")
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
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)
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
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")
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')
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()
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()
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']
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')
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']
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']
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']
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
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'
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
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}
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', ('*****@*****.**', ))
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>')
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)
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)
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'
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)
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)
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', ))
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()
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")
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
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()
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")
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()
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()
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
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
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)
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>' )
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
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()
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()
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()
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()
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 }
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")
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
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()