Skip to content
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 37 additions & 1 deletion backend/tests/unit/test_auth_redirect_uri.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@

from __future__ import annotations

import importlib.util
import os
import sys
import types
Expand All @@ -41,6 +42,7 @@
# Pre-mock heavy deps before importing the module under test (Python 3.9 compat —
# database.redis_db uses dict | None syntax that requires 3.10+).
BACKEND_DIR = Path(__file__).resolve().parents[2]
_BACKEND_DIR = str(BACKEND_DIR)


def _ensure_package(name, path):
Expand Down Expand Up @@ -87,6 +89,31 @@ def _install_module(name):

log_sanitizer_stub = _install_module("utils.log_sanitizer")
log_sanitizer_stub.sanitize = MagicMock(side_effect=lambda value: value)
jwt_stub = _install_module("jwt")
jwt_algorithms_stub = _install_module("jwt.algorithms")
jwt_algorithms_stub.RSAAlgorithm = MagicMock()

_redis_db_mod = sys.modules['database.redis_db']
for name in ['set_auth_session', 'get_auth_session', 'set_auth_code', 'get_auth_code', 'delete_auth_code']:
if not hasattr(_redis_db_mod, name):
setattr(_redis_db_mod, name, MagicMock())

_firebase_admin_mod = types.ModuleType('firebase_admin')
_firebase_admin_mod.auth = sys.modules['firebase_admin.auth']
sys.modules.setdefault('firebase_admin', _firebase_admin_mod)


def _install_python_multipart_stub():
if 'python_multipart' in sys.modules:
return False
if importlib.util.find_spec('python_multipart') is not None:
return False

mod = types.ModuleType('python_multipart')
mod.__version__ = '0.0.20'
sys.modules['python_multipart'] = mod
return True


try:
import jinja2 # noqa: F401
Expand All @@ -100,7 +127,16 @@ def _install_module(name):
if str(BACKEND_DIR) not in sys.path:
sys.path.insert(0, str(BACKEND_DIR))

from routers.auth import _validate_redirect_uri # noqa: E402
_utils_pkg = sys.modules.get('utils')
if _utils_pkg is not None:
_utils_pkg.__path__ = [os.path.join(_BACKEND_DIR, 'utils')]

_remove_python_multipart_stub = _install_python_multipart_stub()
try:
from routers.auth import _validate_redirect_uri # noqa: E402
finally:
if _remove_python_multipart_stub:
sys.modules.pop('python_multipart', None)

# ---------------------------------------------------------------------------
# Acceptance — every shape an existing Omi client uses
Expand Down
Loading