2023-04-10 11:45:52 +00:00
|
|
|
import pytest
|
2024-03-15 18:58:06 +00:00
|
|
|
|
2023-04-09 09:37:04 +00:00
|
|
|
from canaille.app import models
|
2023-06-28 16:09:25 +00:00
|
|
|
from canaille.core.models import Group
|
2023-04-10 11:45:52 +00:00
|
|
|
from canaille.core.models import User
|
|
|
|
|
|
|
|
|
|
|
|
def test_required_methods(testclient):
|
|
|
|
with pytest.raises(NotImplementedError):
|
|
|
|
User.get_from_login()
|
|
|
|
|
|
|
|
user = User()
|
|
|
|
|
|
|
|
with pytest.raises(NotImplementedError):
|
|
|
|
user.check_password("password")
|
|
|
|
|
|
|
|
with pytest.raises(NotImplementedError):
|
|
|
|
user.set_password("password")
|
2023-05-18 14:43:23 +00:00
|
|
|
|
2023-08-17 13:55:41 +00:00
|
|
|
Group()
|
2023-06-28 16:09:25 +00:00
|
|
|
|
2023-05-18 14:43:23 +00:00
|
|
|
|
2023-05-20 15:17:46 +00:00
|
|
|
def test_user_get_from_login(testclient, user, backend):
|
2023-04-09 09:37:04 +00:00
|
|
|
assert models.User.get_from_login(login="invalid") is None
|
|
|
|
assert models.User.get_from_login(login="user") == user
|
2023-05-18 14:43:23 +00:00
|
|
|
|
|
|
|
|
2023-05-20 15:17:46 +00:00
|
|
|
def test_user_has_password(testclient, backend):
|
2023-11-29 08:19:20 +00:00
|
|
|
user = models.User(
|
2023-05-18 14:43:23 +00:00
|
|
|
formatted_name="Temp User",
|
|
|
|
family_name="Temp",
|
|
|
|
user_name="temp",
|
2023-10-02 19:58:46 +00:00
|
|
|
emails=["john@doe.com"],
|
2023-05-18 14:43:23 +00:00
|
|
|
)
|
2023-11-29 08:19:20 +00:00
|
|
|
user.save()
|
2023-05-18 14:43:23 +00:00
|
|
|
|
2023-11-29 08:19:20 +00:00
|
|
|
assert user.password is None
|
|
|
|
assert not user.has_password()
|
2023-05-18 14:43:23 +00:00
|
|
|
|
2023-11-29 08:19:20 +00:00
|
|
|
user.password = "foobar"
|
|
|
|
user.save()
|
2023-05-18 14:43:23 +00:00
|
|
|
|
2023-11-29 08:19:20 +00:00
|
|
|
assert user.password is not None
|
|
|
|
assert user.has_password()
|
2023-05-18 14:43:23 +00:00
|
|
|
|
2023-11-29 08:19:20 +00:00
|
|
|
user.delete()
|
2023-05-18 14:43:23 +00:00
|
|
|
|
|
|
|
|
2023-05-20 15:17:46 +00:00
|
|
|
def test_user_set_and_check_password(testclient, user, backend):
|
2022-11-01 11:25:21 +00:00
|
|
|
assert not user.check_password("something else")[0]
|
|
|
|
assert user.check_password("correct horse battery staple")[0]
|
2023-05-18 14:43:23 +00:00
|
|
|
|
|
|
|
user.set_password("something else")
|
|
|
|
|
2022-11-01 11:25:21 +00:00
|
|
|
assert user.check_password("something else")[0]
|
|
|
|
assert not user.check_password("correct horse battery staple")[0]
|