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},
 | |
|     }
 |