70 lines
2.0 KiB
Python
70 lines
2.0 KiB
Python
|
|
# retoor <retoor@molodetz.nl>
|
||
|
|
|
||
|
|
def test_primary_admin_ignores_accounts_without_a_signup_time(local_db):
|
||
|
|
from devplacepy.database import get_primary_admin_uid, invalidate_admins_cache
|
||
|
|
|
||
|
|
users = local_db["users"]
|
||
|
|
users.insert(
|
||
|
|
{
|
||
|
|
"uid": "pa-real",
|
||
|
|
"username": "pa-real",
|
||
|
|
"role": "Admin",
|
||
|
|
"created_at": "2020-01-01T00:00:00",
|
||
|
|
"deleted_at": None,
|
||
|
|
}
|
||
|
|
)
|
||
|
|
users.insert(
|
||
|
|
{
|
||
|
|
"uid": "pa-null",
|
||
|
|
"username": "pa-null",
|
||
|
|
"role": "Admin",
|
||
|
|
"created_at": None,
|
||
|
|
"deleted_at": None,
|
||
|
|
}
|
||
|
|
)
|
||
|
|
users.insert(
|
||
|
|
{
|
||
|
|
"uid": "pa-blank",
|
||
|
|
"username": "pa-blank",
|
||
|
|
"role": "Admin",
|
||
|
|
"created_at": "",
|
||
|
|
"deleted_at": None,
|
||
|
|
}
|
||
|
|
)
|
||
|
|
invalidate_admins_cache()
|
||
|
|
try:
|
||
|
|
assert get_primary_admin_uid() == "pa-real"
|
||
|
|
finally:
|
||
|
|
for uid in ("pa-real", "pa-null", "pa-blank"):
|
||
|
|
users.delete(uid=uid)
|
||
|
|
invalidate_admins_cache()
|
||
|
|
|
||
|
|
|
||
|
|
def test_primary_admin_skips_deactivated_and_deleted_founders(local_db):
|
||
|
|
from devplacepy.database import get_primary_admin_uid, invalidate_admins_cache
|
||
|
|
|
||
|
|
users = local_db["users"]
|
||
|
|
seeded = [
|
||
|
|
("pa-deleted", "2001-01-01T00:00:00", True, "2020-01-01T00:00:00"),
|
||
|
|
("pa-inactive", "2002-01-01T00:00:00", False, None),
|
||
|
|
("pa-usable", "2003-01-01T00:00:00", True, None),
|
||
|
|
]
|
||
|
|
for uid, created_at, active, deleted_at in seeded:
|
||
|
|
users.insert(
|
||
|
|
{
|
||
|
|
"uid": uid,
|
||
|
|
"username": uid,
|
||
|
|
"role": "Admin",
|
||
|
|
"created_at": created_at,
|
||
|
|
"is_active": active,
|
||
|
|
"deleted_at": deleted_at,
|
||
|
|
}
|
||
|
|
)
|
||
|
|
invalidate_admins_cache()
|
||
|
|
try:
|
||
|
|
assert get_primary_admin_uid() == "pa-usable"
|
||
|
|
finally:
|
||
|
|
for uid, _, _, _ in seeded:
|
||
|
|
users.delete(uid=uid)
|
||
|
|
invalidate_admins_cache()
|