Skip to content
Snippets Groups Projects
Verified Commit 3147eb0a authored by Andreas Ellewsen's avatar Andreas Ellewsen
Browse files

Expand test coverage

parent 44f7d800
No related branches found
No related tags found
1 merge request!183Tests/identity coverage
import pytest
from rest_framework.reverse import reverse
from greg.models import Identity
from gregui.models import GregUserProfile
@pytest.mark.django_db
def test_identity_get(client, log_in, user_sponsor, person_foo):
log_in(user_sponsor)
response = client.get(
reverse("gregui-v1:identity-detail", kwargs={"pk": person_foo.fnr.id})
)
assert response.status_code == 200
content = response.json()
assert content["person"] == person_foo.id
@pytest.mark.django_db
def test_identity_patch(client, log_in, user_sponsor, person_foo):
log_in(user_sponsor)
ident = Identity.objects.get(pk=person_foo.fnr.id)
assert not ident.verified
client.patch(
reverse("gregui-v1:identity-detail", kwargs={"pk": person_foo.fnr.id}),
data={},
)
ident.refresh_from_db()
assert ident.verified == Identity.Verified.MANUAL
assert ident.verified_by == GregUserProfile.objects.get(user=user_sponsor).sponsor
......@@ -43,6 +43,14 @@ def test_userinfo_invited_get(client, invitation_link):
}
@pytest.mark.django_db
def test_userinfo_user_no_profile(client, log_in, user_no_profile):
"""Pure django users should be forbidden"""
log_in(user_no_profile)
response = client.get(reverse("api-userinfo"))
assert response.status_code == status.HTTP_403_FORBIDDEN
@pytest.mark.django_db
def test_userinfo_sponsor_get(client, log_in, user_sponsor):
"""Sponsors should get info about themselves"""
......
......@@ -142,6 +142,19 @@ def create_user() -> Callable[[str, str, str, str], UserModel]:
return create_user
@pytest.fixture
def user_no_profile(create_user) -> User:
"""User without a GregUserProfile"""
user_model = get_user_model()
user = create_user(
username="no_profile",
email="no_profile@example.org",
first_name="No",
last_name="Profile",
)
return user_model.objects.get(id=user.id)
@pytest.fixture
def user_sponsor(sponsor_foo: Sponsor, create_user) -> User:
user_model = get_user_model()
......
......@@ -57,3 +57,22 @@ def test_confirmation_mail(confirmation_template):
assert result(task_id) == 1
assert len(mail.outbox) == 1
assert mail.outbox[0].to == ["test@example.no"]
@pytest.mark.django_db
def test_send_invite_mail(registration_template, invited_person):
"""Verify function queues an email when called"""
_, link = invited_person
assert len(mail.outbox) == 0
assert mailutils.send_invite_mail(link)
assert len(mail.outbox) == 1
@pytest.mark.django_db
def test_send_invite_mail_no_mail(invited_person):
"""Verify function returns None if an email is not present"""
person, link = invited_person
person.private_email.delete()
assert len(mail.outbox) == 0
assert mailutils.send_invite_mail(link) is None
assert len(mail.outbox) == 0
from gregui.utils import name_diff, restricted_damarau_levenshtein
def test_rdm_replace():
assert restricted_damarau_levenshtein("abc", "abd") == 1
def test_rdm_swap():
assert restricted_damarau_levenshtein("abc", "bac") == 1
def test_name_diff():
assert name_diff("Foo Bar", "Foo Baz") == 1
def test_name_longer():
"""Verify stops early with default threshold"""
assert name_diff("Abcdefgh Ijklmnop", "Qrstuvw Xyz") == 5
def test_name_threshold():
"""Verify continues with raised threshold"""
assert name_diff("Abcdefgh Ijklmnop", "Qrstuvw Xyz", 100) == 10
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment