34 lines
1.3 KiB
Python
34 lines
1.3 KiB
Python
from funkwhale_api.users import tasks
|
|
|
|
|
|
def test_delete_account_mutation(mocker, factories, now):
|
|
user = factories["users.User"](subsonic_api_token="test", password="test")
|
|
actor = user.create_actor()
|
|
on_commit = mocker.patch("funkwhale_api.common.utils.on_commit")
|
|
|
|
secret_key = user.secret_key
|
|
set_unusable_password = mocker.spy(user, "set_unusable_password")
|
|
factories["users.Grant"](user=user)
|
|
factories["users.AccessToken"](user=user)
|
|
factories["users.RefreshToken"](user=user)
|
|
mutation = factories["common.Mutation"](
|
|
type="delete_account", target=actor, payload={}
|
|
)
|
|
|
|
mutation.apply()
|
|
user.refresh_from_db()
|
|
|
|
set_unusable_password.assert_called_once_with()
|
|
assert user.has_usable_password() is False
|
|
assert user.subsonic_api_token is None
|
|
assert user.secret_key is not None and user.secret_key != secret_key
|
|
assert user.users_grant.count() == 0
|
|
assert user.users_refreshtoken.count() == 0
|
|
assert user.users_accesstoken.count() == 0
|
|
on_commit.assert_called_once_with(tasks.delete_account.delay, user_id=user.pk)
|
|
|
|
assert mutation.previous_state == {
|
|
"actor": {"preferred_username": actor.preferred_username},
|
|
"user": {"username": user.username, "id": user.pk},
|
|
}
|