diff --git a/compendium_v2/auth/session_management.py b/compendium_v2/auth/session_management.py
index eed857ee9adf0e1160b7387e43d0abe96ccafd6b..37be02d952405c8005ddb21cedd9d7f63f8dba4b 100644
--- a/compendium_v2/auth/session_management.py
+++ b/compendium_v2/auth/session_management.py
@@ -1,6 +1,6 @@
 from functools import wraps
 from sqlalchemy import select
-from flask import jsonify
+from flask import jsonify, current_app
 from datetime import datetime
 from flask_login import LoginManager, current_user  # type: ignore
 from compendium_v2.db import session_scope
@@ -16,15 +16,16 @@ def admin_required(func):
     """
 
     def wrapper(*args, **kwargs):
-        if not current_user.is_authenticated:
-            return jsonify(success=False,
-                           data={'login_required': True},
-                           message='Authorize to access this page.'), 401
-        role = current_user.roles
-        if role != ROLES.admin:
-            return jsonify(success=False,
-                           data={'admin_required': True},
-                           message='Admin privileges required to access this page.'), 401
+        if not current_app.config.get('LOGIN_DISABLED'):
+            if not current_user.is_authenticated:
+                return jsonify(success=False,
+                               data={'login_required': True},
+                               message='Authorize to access this page.'), 401
+            role = current_user.roles
+            if role != ROLES.admin:
+                return jsonify(success=False,
+                               data={'admin_required': True},
+                               message='Admin privileges required to access this page.'), 401
 
         return func(*args, **kwargs)
 
diff --git a/compendium_v2/routes/survey.py b/compendium_v2/routes/survey.py
index 61f8568003cfef5f90104dccf64e8eb4173df6cb..bfbcaab00ec7eb2a378cb59074d9705cc4bdb56d 100644
--- a/compendium_v2/routes/survey.py
+++ b/compendium_v2/routes/survey.py
@@ -3,7 +3,7 @@ from enum import Enum
 from typing import Any, TypedDict, List, Dict
 
 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.orm import joinedload, load_only
 
diff --git a/test/conftest.py b/test/conftest.py
index fa53adf02f5980e1f43bb42020b82baad7ab484e..be9e652dafe3d58f91cfca9c86663cc7214531ff 100644
--- a/test/conftest.py
+++ b/test/conftest.py
@@ -3,9 +3,11 @@ import os
 import pytest
 import random
 
+from flask_login import LoginManager  # type: ignore
 import compendium_v2
 from compendium_v2.db import db, model, survey_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):
@@ -141,6 +143,11 @@ def test_survey_data(app):
 @pytest.fixture
 def app(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():
         db.create_all(bind_key=None)
     yield app