# retoor 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