Skip to content

Commit 16a46b0

Browse files
committed
test: adjust testing for deactivation to compensate for new behavior
And refactor a test helper that was mostly duplicated code
1 parent d60f55f commit 16a46b0

1 file changed

Lines changed: 25 additions & 31 deletions

File tree

tests/rest/client/test_account.py

Lines changed: 25 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131

3232
import synapse.rest.admin
3333
from synapse.api.constants import LoginType, Membership
34-
from synapse.api.errors import Codes, HttpResponseException
34+
from synapse.api.errors import Codes, HttpResponseException, SynapseError
3535
from synapse.appservice import ApplicationService
3636
from synapse.rest import admin
3737
from synapse.rest.client import account, login, register, room
@@ -515,20 +515,24 @@ def test_deactivate_erase_account(self) -> None:
515515
user_id, create_requester(user_id), "http://test/Kermit.jpg"
516516
)
517517
)
518-
self.erase(mxid, tok)
518+
self.deactivate(mxid, tok, erase=True)
519519

520520
store = self.hs.get_datastores().main
521521

522522
# Check that the user has been marked as deactivated.
523523
self.assertTrue(self.get_success(store.get_user_deactivated_status(mxid)))
524524

525-
# On deactivation with 'erase', a displayname and avatar_url are set to an empty
526-
# string through the handler, but are turned into `None` for the database
527-
display_name = self.get_success(profile_handler.get_displayname(user_id))
528-
assert display_name is None, f"{display_name}"
525+
# On deactivation with 'erase', the entire database row is erased. Both of these
526+
# should raise a 404(Not Found) SynapseError
527+
display_name_failure = self.get_failure(
528+
profile_handler.get_displayname(user_id), SynapseError
529+
)
530+
assert display_name_failure.value.code == HTTPStatus.NOT_FOUND
529531

530-
avatar_url = self.get_success(profile_handler.get_avatar_url(user_id))
531-
assert avatar_url is None, f"{avatar_url}"
532+
avatar_url_failure = self.get_failure(
533+
profile_handler.get_avatar_url(user_id), SynapseError
534+
)
535+
assert avatar_url_failure.value.code == HTTPStatus.NOT_FOUND
532536

533537
# Check that this access token has been invalidated.
534538
channel = self.make_request("GET", "account/whoami", access_token=tok)
@@ -558,18 +562,22 @@ def test_deactivate_erase_account_with_disabled_profile_changes(self) -> None:
558562
)
559563

560564
# self.get_success(profile_handler.set_displayname(user_id, create_requester(user_id), ))
561-
self.erase(mxid, tok)
565+
self.deactivate(mxid, tok, erase=True)
562566

563567
# Check that the user has been marked as deactivated.
564568
self.assertTrue(self.get_success(store.get_user_deactivated_status(mxid)))
565569

566-
# On deactivation with 'erase', a displayname and avatar_url are set to an empty
567-
# string through the handler, but are turned into `None` for the database
568-
display_name = self.get_success(profile_handler.get_displayname(user_id))
569-
assert display_name is None, f"{display_name}"
570+
# On deactivation with 'erase', the entire database row is erased. Both of these
571+
# should raise a 404(Not Found) SynapseError
572+
display_name_failure = self.get_failure(
573+
profile_handler.get_displayname(user_id), SynapseError
574+
)
575+
assert display_name_failure.value.code == HTTPStatus.NOT_FOUND
570576

571-
avatar_url = self.get_success(profile_handler.get_avatar_url(user_id))
572-
assert avatar_url is None, f"{avatar_url}"
577+
avatar_url_failure = self.get_failure(
578+
profile_handler.get_avatar_url(user_id), SynapseError
579+
)
580+
assert avatar_url_failure.value.code == HTTPStatus.NOT_FOUND
573581

574582
# Check that this access token has been invalidated.
575583
channel = self.make_request("GET", "account/whoami", access_token=tok)
@@ -773,28 +781,14 @@ def test_background_update_deletes_deactivated_users_server_side_backup_keys(
773781
)
774782
self.assertEqual(len(res2), 4)
775783

776-
def deactivate(self, user_id: str, tok: str) -> None:
777-
request_data = {
778-
"auth": {
779-
"type": "m.login.password",
780-
"user": user_id,
781-
"password": "test",
782-
},
783-
"erase": False,
784-
}
785-
channel = self.make_request(
786-
"POST", "account/deactivate", request_data, access_token=tok
787-
)
788-
self.assertEqual(channel.code, 200, channel.json_body)
789-
790-
def erase(self, user_id: str, tok: str) -> None:
784+
def deactivate(self, user_id: str, tok: str, erase: bool = False) -> None:
791785
request_data = {
792786
"auth": {
793787
"type": "m.login.password",
794788
"user": user_id,
795789
"password": "test",
796790
},
797-
"erase": True,
791+
"erase": erase,
798792
}
799793
channel = self.make_request(
800794
"POST", "account/deactivate", request_data, access_token=tok

0 commit comments

Comments
 (0)