Mark get_user_in_directory private since only used in tests (#15884)

1.103.0-whithout-watcha
Mathieu Velten 1 year ago committed by GitHub
parent 3bdb9b07fd
commit 8eb7bb975e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 1
      changelog.d/15884.misc
  2. 9
      synapse/storage/databases/main/user_directory.py
  3. 18
      tests/handlers/test_user_directory.py
  4. 6
      tests/rest/admin/test_user.py

@ -0,0 +1 @@
Mark `get_user_in_directory` private since it is only used in tests. Also remove the cache from it.

@ -62,7 +62,6 @@ from synapse.types import (
get_domain_from_id, get_domain_from_id,
get_localpart_from_id, get_localpart_from_id,
) )
from synapse.util.caches.descriptors import cached
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
@ -771,9 +770,6 @@ class UserDirectoryBackgroundUpdateStore(StateDeltasStore):
# This should be unreachable. # This should be unreachable.
raise Exception("Unrecognized database engine") raise Exception("Unrecognized database engine")
for p in profiles:
txn.call_after(self.get_user_in_directory.invalidate, (p.user_id,))
async def add_users_who_share_private_room( async def add_users_who_share_private_room(
self, room_id: str, user_id_tuples: Iterable[Tuple[str, str]] self, room_id: str, user_id_tuples: Iterable[Tuple[str, str]]
) -> None: ) -> None:
@ -831,14 +827,12 @@ class UserDirectoryBackgroundUpdateStore(StateDeltasStore):
txn.execute(f"{truncate} user_directory_search") txn.execute(f"{truncate} user_directory_search")
txn.execute(f"{truncate} users_in_public_rooms") txn.execute(f"{truncate} users_in_public_rooms")
txn.execute(f"{truncate} users_who_share_private_rooms") txn.execute(f"{truncate} users_who_share_private_rooms")
txn.call_after(self.get_user_in_directory.invalidate_all)
await self.db_pool.runInteraction( await self.db_pool.runInteraction(
"delete_all_from_user_dir", _delete_all_from_user_dir_txn "delete_all_from_user_dir", _delete_all_from_user_dir_txn
) )
@cached() async def _get_user_in_directory(self, user_id: str) -> Optional[Mapping[str, str]]:
async def get_user_in_directory(self, user_id: str) -> Optional[Mapping[str, str]]:
return await self.db_pool.simple_select_one( return await self.db_pool.simple_select_one(
table="user_directory", table="user_directory",
keyvalues={"user_id": user_id}, keyvalues={"user_id": user_id},
@ -900,7 +894,6 @@ class UserDirectoryStore(UserDirectoryBackgroundUpdateStore):
table="users_who_share_private_rooms", table="users_who_share_private_rooms",
keyvalues={"other_user_id": user_id}, keyvalues={"other_user_id": user_id},
) )
txn.call_after(self.get_user_in_directory.invalidate, (user_id,))
await self.db_pool.runInteraction( await self.db_pool.runInteraction(
"remove_from_user_dir", _remove_from_user_dir_txn "remove_from_user_dir", _remove_from_user_dir_txn

@ -356,7 +356,7 @@ class UserDirectoryTestCase(unittest.HomeserverTestCase):
support_user_id, ProfileInfo("I love support me", None) support_user_id, ProfileInfo("I love support me", None)
) )
) )
profile = self.get_success(self.store.get_user_in_directory(support_user_id)) profile = self.get_success(self.store._get_user_in_directory(support_user_id))
self.assertIsNone(profile) self.assertIsNone(profile)
display_name = "display_name" display_name = "display_name"
@ -364,7 +364,7 @@ class UserDirectoryTestCase(unittest.HomeserverTestCase):
self.get_success( self.get_success(
self.handler.handle_local_profile_change(regular_user_id, profile_info) self.handler.handle_local_profile_change(regular_user_id, profile_info)
) )
profile = self.get_success(self.store.get_user_in_directory(regular_user_id)) profile = self.get_success(self.store._get_user_in_directory(regular_user_id))
assert profile is not None assert profile is not None
self.assertTrue(profile["display_name"] == display_name) self.assertTrue(profile["display_name"] == display_name)
@ -383,7 +383,7 @@ class UserDirectoryTestCase(unittest.HomeserverTestCase):
) )
# profile is in directory # profile is in directory
profile = self.get_success(self.store.get_user_in_directory(r_user_id)) profile = self.get_success(self.store._get_user_in_directory(r_user_id))
assert profile is not None assert profile is not None
self.assertTrue(profile["display_name"] == display_name) self.assertTrue(profile["display_name"] == display_name)
@ -392,7 +392,7 @@ class UserDirectoryTestCase(unittest.HomeserverTestCase):
self.get_success(self.handler.handle_local_user_deactivated(r_user_id)) self.get_success(self.handler.handle_local_user_deactivated(r_user_id))
# profile is not in directory # profile is not in directory
profile = self.get_success(self.store.get_user_in_directory(r_user_id)) profile = self.get_success(self.store._get_user_in_directory(r_user_id))
self.assertIsNone(profile) self.assertIsNone(profile)
# update profile after deactivation # update profile after deactivation
@ -401,7 +401,7 @@ class UserDirectoryTestCase(unittest.HomeserverTestCase):
) )
# profile is furthermore not in directory # profile is furthermore not in directory
profile = self.get_success(self.store.get_user_in_directory(r_user_id)) profile = self.get_success(self.store._get_user_in_directory(r_user_id))
self.assertIsNone(profile) self.assertIsNone(profile)
def test_handle_local_profile_change_with_appservice_user(self) -> None: def test_handle_local_profile_change_with_appservice_user(self) -> None:
@ -411,7 +411,7 @@ class UserDirectoryTestCase(unittest.HomeserverTestCase):
) )
# profile is not in directory # profile is not in directory
profile = self.get_success(self.store.get_user_in_directory(as_user_id)) profile = self.get_success(self.store._get_user_in_directory(as_user_id))
self.assertIsNone(profile) self.assertIsNone(profile)
# update profile # update profile
@ -421,13 +421,13 @@ class UserDirectoryTestCase(unittest.HomeserverTestCase):
) )
# profile is still not in directory # profile is still not in directory
profile = self.get_success(self.store.get_user_in_directory(as_user_id)) profile = self.get_success(self.store._get_user_in_directory(as_user_id))
self.assertIsNone(profile) self.assertIsNone(profile)
def test_handle_local_profile_change_with_appservice_sender(self) -> None: def test_handle_local_profile_change_with_appservice_sender(self) -> None:
# profile is not in directory # profile is not in directory
profile = self.get_success( profile = self.get_success(
self.store.get_user_in_directory(self.appservice.sender) self.store._get_user_in_directory(self.appservice.sender)
) )
self.assertIsNone(profile) self.assertIsNone(profile)
@ -441,7 +441,7 @@ class UserDirectoryTestCase(unittest.HomeserverTestCase):
# profile is still not in directory # profile is still not in directory
profile = self.get_success( profile = self.get_success(
self.store.get_user_in_directory(self.appservice.sender) self.store._get_user_in_directory(self.appservice.sender)
) )
self.assertIsNone(profile) self.assertIsNone(profile)

@ -2472,7 +2472,7 @@ class UserRestTestCase(unittest.HomeserverTestCase):
""" """
# is in user directory # is in user directory
profile = self.get_success(self.store.get_user_in_directory(self.other_user)) profile = self.get_success(self.store._get_user_in_directory(self.other_user))
assert profile is not None assert profile is not None
self.assertTrue(profile["display_name"] == "User") self.assertTrue(profile["display_name"] == "User")
@ -2489,7 +2489,7 @@ class UserRestTestCase(unittest.HomeserverTestCase):
self.assertTrue(channel.json_body["deactivated"]) self.assertTrue(channel.json_body["deactivated"])
# is not in user directory # is not in user directory
profile = self.get_success(self.store.get_user_in_directory(self.other_user)) profile = self.get_success(self.store._get_user_in_directory(self.other_user))
self.assertIsNone(profile) self.assertIsNone(profile)
# Set new displayname user # Set new displayname user
@ -2506,7 +2506,7 @@ class UserRestTestCase(unittest.HomeserverTestCase):
self.assertEqual("Foobar", channel.json_body["displayname"]) self.assertEqual("Foobar", channel.json_body["displayname"])
# is not in user directory # is not in user directory
profile = self.get_success(self.store.get_user_in_directory(self.other_user)) profile = self.get_success(self.store._get_user_in_directory(self.other_user))
self.assertIsNone(profile) self.assertIsNone(profile)
def test_reactivate_user(self) -> None: def test_reactivate_user(self) -> None:

Loading…
Cancel
Save