def setUp(self, data_dir='example01', bgen_names='chr{:d}impv1.bgen', bgenix_path='bgenix', user_pass_line=None): super(TestRestApiGenotype, self).setUp() # Load data genoq = GenoQuery(get_repository_path(data_dir), bgen_names=bgen_names, bgenix_path=bgenix_path) # Configure app.app.config['testing'] = True app.app.config['auth'] = None app.app.config['genoquery'] = genoq if user_pass_line is not None: f = tempfile.NamedTemporaryFile(delete=False) f.close() with open(f.name, 'w') as fi: fi.write(user_pass_line) ph = PasswordHasher(f.name, method='pbkdf2:sha256') app.app.config['auth'] = ph.setup_http_basic_auth() self.app = app.app.test_client()
def test_process_users_file_file_does_not_exist_test00(self): # prepare users_file = get_repository_path('no/existing/file/here.txt') # run ph = PasswordHasher(users_file, method='pbkdf2:sha256') ph.process_users_file()
def test_process_users_file_one_password_hashed_rest_not_test01(self): # prepare orig_user_file = get_repository_path('wsgi/test01/users.txt') users_file = orig_user_file + '.bak' copyfile(orig_user_file, users_file) orig_users = self.load_data(orig_user_file) # run ph = PasswordHasher(users_file, method='pbkdf2:sha256') ph.process_users_file() # evaluate assert os.path.isfile(users_file) users = self.load_data(users_file) assert len(users) == 3 for user, password in users.items(): assert user in orig_users.keys(), user if user != 'adams': assert password != orig_users[user], user + ' / ' + password + ' / ' + orig_users[user] else: assert password == users[user], user + password + ' / ' + users[user] assert len(password) == 93, len(password) os.remove(users_file)
def test_process_users_file_already_hashed_test00(self): # prepare orig_user_file = get_repository_path('wsgi/test00/users.txt') users_file = orig_user_file + '.bak' copyfile(orig_user_file, users_file) orig_users = self.load_data(orig_user_file) ph = PasswordHasher(users_file, method='pbkdf2:sha256') ph.process_users_file() users = self.load_data(users_file) # run ph = PasswordHasher(users_file, method='pbkdf2:sha256') ph.process_users_file() # evaluate assert os.path.isfile(users_file) new_users = self.load_data(users_file) assert len(users) == 3 for user, password in new_users.items(): assert user in orig_users.keys(), user assert password == users[user], password + ' / ' + users[user] assert len(password) == 93, len(password) os.remove(users_file)
def test_verify_password_users_file_none_test01(self): # prepare ph = PasswordHasher(None, method='pbkdf2:sha256') ph.process_users_file() # evaluate assert ph.verify_password('milton', 'whatever') assert ph.verify_password('john', 'mypassword') assert ph.verify_password('adams', 'anotherpassword') assert ph.verify_password('james', 'mypassword')
def test_verify_password_users_file_does_not_exist_test01(self): # prepare users_file = get_repository_path('no/existing/file/here.txt') ph = PasswordHasher(users_file, method='pbkdf2:sha256') ph.process_users_file() # evaluate assert not ph.verify_password('milton', 'whatever') assert not ph.verify_password('john', 'mypassword') assert not ph.verify_password('adams', 'anotherpassword') assert not ph.verify_password('james', 'mypassword')
def test_verify_password_users_file_empty_test01(self): # prepare orig_user_file = get_repository_path('wsgi/test02/users.txt') users_file = orig_user_file + '.bak' ph = PasswordHasher(users_file, method='pbkdf2:sha256') ph.process_users_file() # evaluate assert not ph.verify_password('milton', 'whatever') assert not ph.verify_password('john', 'mypassword') assert not ph.verify_password('adams', 'anotherpassword') assert not ph.verify_password('james', 'mypassword')
genoq_parameters = config.get_genoquery_parameters() genoq_parameters = update_parameters_from_args(genoq_parameters, args) if parameter_empty(genoq_parameters, 'genotype_path'): logger.warning('--genotype-path missing') genoq = GenoQuery(**genoq_parameters) app.config.update({'genoquery': genoq}) # Pheno2SQL pheno2sql_parameters = config.get_pheno2sql_parameters() pheno2sql_parameters = update_parameters_from_args(pheno2sql_parameters, args) if parameter_empty(pheno2sql_parameters, 'db_uri'): parser.error('--db-uri missing') p2sql = Pheno2SQL(**pheno2sql_parameters) app.config.update({'pheno2sql': p2sql}) ph = PasswordHasher(args.users_file, method='pbkdf2:sha256') ph.process_users_file() auth = ph.setup_http_basic_auth() app.config.update({'auth': auth}) app.run(host=str(args.host), port=args.port, debug=args.debug, ssl_context='adhoc' if args.ssl_mode else None)
from ukbrest import config from ukbrest.app import app from ukbrest.common.genoquery import GenoQuery from ukbrest.common.pheno2sql import Pheno2SQL from ukbrest.common.utils.auth import PasswordHasher def setup_app(app, ph): # Add GenoQuery object genoq = GenoQuery(**config.get_genoquery_parameters()) app.config.update({'genoquery': genoq}) # Add Pheno2SQL object p2sql = Pheno2SQL(**config.get_pheno2sql_parameters()) app.config.update({'pheno2sql': p2sql}) # Add auth object auth = ph.setup_http_basic_auth() app.config.update({'auth': auth}) ph = PasswordHasher(config.http_auth_users_file, method='pbkdf2:sha256') ph.process_users_file() setup_app(app, ph)