canaille-globuzma/tests/core/test_models.py

57 lines
1.3 KiB
Python
Raw Normal View History

import pytest
from canaille.app import models
2023-06-28 16:09:25 +00:00
from canaille.core.models import Group
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.has_password()
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
def test_user_get_from_login(testclient, user, backend):
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
def test_user_has_password(testclient, backend):
u = models.User(
2023-05-18 14:43:23 +00:00
formatted_name="Temp User",
family_name="Temp",
user_name="temp",
emails=["john@doe.com"],
2023-05-18 14:43:23 +00:00
)
u.save()
assert not u.has_password()
u.password = "foobar"
u.save()
assert u.has_password()
u.delete()
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]