Skip to content
Snippets Groups Projects
Commit 8afb4164 authored by Bjarke Madsen's avatar Bjarke Madsen
Browse files

Fix tests

parent 3a275179
No related branches found
No related tags found
1 merge request!56Feature/comp 233 survey navigation
from functools import wraps from functools import wraps
from sqlalchemy import select from sqlalchemy import select
from flask import jsonify from flask import jsonify, current_app
from datetime import datetime from datetime import datetime
from flask_login import LoginManager, current_user # type: ignore from flask_login import LoginManager, current_user # type: ignore
from compendium_v2.db import session_scope from compendium_v2.db import session_scope
...@@ -16,15 +16,16 @@ def admin_required(func): ...@@ -16,15 +16,16 @@ def admin_required(func):
""" """
def wrapper(*args, **kwargs): def wrapper(*args, **kwargs):
if not current_user.is_authenticated: if not current_app.config.get('LOGIN_DISABLED'):
return jsonify(success=False, if not current_user.is_authenticated:
data={'login_required': True}, return jsonify(success=False,
message='Authorize to access this page.'), 401 data={'login_required': True},
role = current_user.roles message='Authorize to access this page.'), 401
if role != ROLES.admin: role = current_user.roles
return jsonify(success=False, if role != ROLES.admin:
data={'admin_required': True}, return jsonify(success=False,
message='Admin privileges required to access this page.'), 401 data={'admin_required': True},
message='Admin privileges required to access this page.'), 401
return func(*args, **kwargs) return func(*args, **kwargs)
......
...@@ -3,7 +3,7 @@ from enum import Enum ...@@ -3,7 +3,7 @@ from enum import Enum
from typing import Any, TypedDict, List, Dict from typing import Any, TypedDict, List, Dict
from flask import Blueprint, jsonify, request from flask import Blueprint, jsonify, request
from flask_login import login_required from flask_login import login_required # type: ignore
from sqlalchemy import select from sqlalchemy import select
from sqlalchemy.orm import joinedload, load_only from sqlalchemy.orm import joinedload, load_only
......
...@@ -3,9 +3,11 @@ import os ...@@ -3,9 +3,11 @@ import os
import pytest import pytest
import random import random
from flask_login import LoginManager # type: ignore
import compendium_v2 import compendium_v2
from compendium_v2.db import db, model, survey_model from compendium_v2.db import db, model, survey_model
from compendium_v2.survey_db import model as survey_db_model from compendium_v2.survey_db import model as survey_db_model
from compendium_v2.auth.session_management import setup_login_manager
def _test_data_csv(filename): def _test_data_csv(filename):
...@@ -141,6 +143,11 @@ def test_survey_data(app): ...@@ -141,6 +143,11 @@ def test_survey_data(app):
@pytest.fixture @pytest.fixture
def app(dummy_config): def app(dummy_config):
app = compendium_v2._create_app_with_db(dummy_config) app = compendium_v2._create_app_with_db(dummy_config)
app.config['LOGIN_DISABLED'] = True # disable login and admin_required decorators
login_manager = LoginManager()
login_manager.init_app(app)
login_manager.login_view = 'authentication.login'
setup_login_manager(login_manager)
with app.app_context(): with app.app_context():
db.create_all(bind_key=None) db.create_all(bind_key=None)
yield app yield app
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment