123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- from pathlib import Path
- import pytest
- from ...conf import settings
- from ...core.utils import slugify
- from ..avatars import dynamic
- from ..datadownloads import request_user_data_download
- from ..models import Avatar, DataDownload, User
- from ..utils import hash_email
- def test_username_and_slug_is_anonymized(user):
- user.anonymize_data(anonymous_username="Deleted")
- assert user.username == "Deleted"
- assert user.slug == slugify("Deleted")
- def test_user_avatar_files_are_deleted_during_user_deletion(user):
- dynamic.set_avatar(user)
- user.save()
- user_avatars = []
- for avatar in user.avatar_set.all():
- avatar_path = Path(avatar.image.path)
- assert avatar_path.exists()
- assert avatar_path.is_file()
- user_avatars.append(avatar)
- assert user_avatars
- user.delete(anonymous_username="Deleted")
- for removed_avatar in user_avatars:
- avatar_path = Path(removed_avatar.image.path)
- assert not avatar_path.exists()
- assert not avatar_path.is_file()
- with pytest.raises(Avatar.DoesNotExist):
- Avatar.objects.get(pk=removed_avatar.pk)
- def test_username_setter_also_sets_slug():
- user = User()
- user.set_username("TestUser")
- assert user.username == "TestUser"
- assert user.slug == "testuser"
- def test_django_username_getters_return_username(user):
- assert user.get_username() == user.username
- assert user.get_full_name() == user.username
- assert user.get_short_name() == user.username
- def test_email_setter_normalizes_email():
- user = User()
- user.set_email("us3R@EXample.com")
- assert user.email == "us3R@example.com"
- def test_email_setter_also_sets_email_hash():
- user = User()
- user.set_email("us3R@example.com")
- assert user.email_hash == hash_email("us3R@example.com")
- def test_real_name_getter_returns_name_entered_in_profile_field(user):
- user.profile_fields["real_name"] = "John Doe"
- assert user.get_real_name() == "John Doe"
- def test_real_name_getter_returns_none_if_profile_field_has_no_value(user):
- assert user.get_real_name() is None
- def test_marking_user_for_deletion_deactivates_their_account_in_db(user):
- user.mark_for_delete()
- assert not user.is_active
- assert user.is_deleting_account
- user.refresh_from_db()
- assert not user.is_active
- assert user.is_deleting_account
- def test_user_data_downloads_are_removed_by_anonymization(user):
- data_download = request_user_data_download(user)
- user.anonymize_data(anonymous_username="Deleted")
- with pytest.raises(DataDownload.DoesNotExist):
- data_download.refresh_from_db()
- def test_deleting_user_also_deletes_their_data_downloads(user):
- data_download = request_user_data_download(user)
- user.delete(anonymous_username="Deleted")
- with pytest.raises(DataDownload.DoesNotExist):
- data_download.refresh_from_db()
|