def test_encrypt_decrypt(self): config = utils.get_config_parser() enc = AESCipher(config.get('AES', 'key')) f = open("password.txt", "w+") f.write("Password") f.close() enc.encrypt_file("password.txt", out_filename="password.enc") password = enc.decrypt_file("password.enc") assert password == "Password", "Failed to decrypt file"
def test_source_db_connection(self): connection = utils.get_oracle_connection_obj() config = utils.get_config_parser() enc = AESCipher( '[EX\xc8\xd5\xbfI{\xa2$\x05(\xd5\x18\xbf\xc0\x85)\x10nc\x94\x02)j\xdf\xcb\xc4\x94\x9d(\x9e' ) query = f"SELECT CONNECTION_STRING,USERNAME,PASSWORD_FILE FROM {config.get('Database', 'connection_tablename')}" source_db_df = pd.read_sql(query, con=connection) for index, row in source_db_df.iterrows(): password = enc.decrypt_file(row['PASSWORD_FILE']) connection = utils.get_oracle_connection_obj( row['USERNAME'], password, row['CONNECTION_STRING']) assert type( connection ) == cx_Oracle.Connection, "Username or password or connection string is incorrect"
def test_source_tables(self): connection = utils.get_oracle_connection_obj() config = utils.get_config_parser() enc = AESCipher( '[EX\xc8\xd5\xbfI{\xa2$\x05(\xd5\x18\xbf\xc0\x85)\x10nc\x94\x02)j\xdf\xcb\xc4\x94\x9d(\x9e' ) query = f"SELECT CONNECTION_STRING,USERNAME,PASSWORD_FILE,DATABASE_NAME,TABLE_NAME FROM " \ f"{config.get('Database', 'extraction_tablename')} E JOIN " \ f"{config.get('Database', 'connection_tablename')} C ON E.CONNECTION_ID=C.CONNECTION_ID" join_df = pd.read_sql(query, con=connection) for index, row in join_df.iterrows(): password = enc.decrypt_file(row['PASSWORD_FILE']) connection = utils.get_oracle_connection_obj( row['USERNAME'], password, row['CONNECTION_STRING']) dbcur = connection.cursor() try: dbcur.execute( f"SELECT * FROM {row['DATABASE_NAME']}.{row['TABLE_NAME']}" ) except Exception as ex: err, = ex.args pytest.fail(err.message)