Squash Odysseus development history

This commit is contained in:
pewdiepie-archdaemon
2026-09-11 06:04:19 +00:00
parent e5c99a5eee
commit 6ee6502010
2050 changed files with 538359 additions and 57745 deletions
@@ -0,0 +1,36 @@
import types
import pytest
from src import auth_helpers
from src.auth_helpers import require_privilege
class _Mgr:
def __init__(self, privs):
self._privs = privs
def get_privileges(self, user):
return self._privs
def _request(mgr):
state = types.SimpleNamespace(auth_manager=mgr)
return types.SimpleNamespace(app=types.SimpleNamespace(state=state))
def test_require_privilege_tolerates_non_dict_privileges(monkeypatch):
# A corrupt auth.json can make get_privileges return a non-dict (e.g. a
# list). The privs.get(...) call sits outside the try, so the old code
# raised AttributeError and turned a privilege check into a 500. It should
# fall back to the documented fail-open behaviour.
monkeypatch.setattr(auth_helpers, "require_user", lambda request: "bob")
req = _request(_Mgr(["do_x"]))
assert require_privilege(req, "do_x") == "bob"
def test_require_privilege_still_blocks_disallowed(monkeypatch):
monkeypatch.setattr(auth_helpers, "require_user", lambda request: "bob")
req = _request(_Mgr({"do_x": False}))
with pytest.raises(Exception):
require_privilege(req, "do_x")