# retoor <retoor@molodetz.nl>
from devplacepy.database import get_table, set_setting
from devplacepy.services.devii.interaction import prefs
from devplacepy.utils.accounts import register_account
def _user(username="ixpref1"):
try:
register_account(username, f"{username}@t.dev", "secret123")
except Exception:
pass
return get_table("users").find_one(username=username)
def test_admin_default_applies_when_user_inherits(local_db):
set_setting("devii_interactions_default", "1")
user = _user("ixpref_inherit")
get_table("users").update(
{"uid": user["uid"], "interactions_enabled": -1}, ["uid"]
)
assert prefs.effective_for("user", user["uid"]) is True
snap = prefs.snapshot("user", user["uid"])
assert snap["source"] == "default"
assert snap["override"] is None
def test_user_override_off(local_db):
set_setting("devii_interactions_default", "1")
user = _user("ixpref_off")
prefs.set_user_pref(user["uid"], False)
assert prefs.effective_for("user", user["uid"]) is False
snap = prefs.snapshot("user", user["uid"])
assert snap["source"] == "user"
assert snap["override"] is False
assert snap["default"] is True
def test_user_override_on_when_default_off(local_db):
set_setting("devii_interactions_default", "0")
user = _user("ixpref_on")
prefs.set_user_pref(user["uid"], True)
assert prefs.effective_for("user", user["uid"]) is True
assert prefs.admin_default() is False
def test_reset_returns_to_default(local_db):
set_setting("devii_interactions_default", "0")
user = _user("ixpref_reset")
prefs.set_user_pref(user["uid"], True)
snap = prefs.set_user_pref(user["uid"], None)
assert snap["source"] == "default"
assert snap["enabled"] is False
assert get_table("users").find_one(uid=user["uid"])["interactions_enabled"] == -1
def test_guest_uses_admin_default(local_db):
set_setting("devii_interactions_default", "0")
assert prefs.effective_for("guest", "cookie") is False
set_setting("devii_interactions_default", "1")
assert prefs.effective_for("guest", "cookie") is True