forked from retoor/devplacepy
Update
This commit is contained in:
@@ -0,0 +1,61 @@
|
||||
# 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
|
||||
Reference in New Issue
Block a user