36 lines
1.1 KiB
Python
36 lines
1.1 KiB
Python
import pytest
|
|
|
|
from funkwhale_api.federation import routes
|
|
from funkwhale_api.users import tasks
|
|
|
|
|
|
def test_delete_account(factories, mocker):
|
|
user = factories["users.User"]()
|
|
actor = user.create_actor()
|
|
factories["federation.Follow"](target=actor, approved=True)
|
|
library = factories["music.Library"](actor=actor)
|
|
unrelated_library = factories["music.Library"]()
|
|
dispatch = mocker.spy(routes.outbox, "dispatch")
|
|
|
|
tasks.delete_account(user_id=user.pk)
|
|
|
|
dispatch.assert_called_once_with(
|
|
{"type": "Delete", "object": {"type": actor.type}}, context={"actor": actor}
|
|
)
|
|
|
|
with pytest.raises(user.DoesNotExist):
|
|
user.refresh_from_db()
|
|
|
|
with pytest.raises(library.DoesNotExist):
|
|
library.refresh_from_db()
|
|
|
|
# this one shouldn't be deleted
|
|
unrelated_library.refresh_from_db()
|
|
actor.refresh_from_db()
|
|
|
|
assert actor.type == "Tombstone"
|
|
assert actor.name is None
|
|
assert actor.summary is None
|
|
# this activity shouldn't be deleted
|
|
assert actor.outbox_activities.filter(type="Delete").count() == 1
|