1414from typing import Any , Iterable , Optional , Tuple
1515from unittest import mock
1616
17+ from synapse .api .constants import EventContentFields , RoomTypes
1718from synapse .api .errors import AuthError
1819from synapse .handlers .space_summary import _child_events_comparison_key
1920from synapse .rest import admin
@@ -97,9 +98,21 @@ def prepare(self, reactor, clock, hs: HomeServer):
9798 self .hs = hs
9899 self .handler = self .hs .get_space_summary_handler ()
99100
101+ # Create a user.
100102 self .user = self .register_user ("user" , "pass" )
101103 self .token = self .login ("user" , "pass" )
102104
105+ # Create a space and a child room.
106+ self .space = self .helper .create_room_as (
107+ self .user ,
108+ tok = self .token ,
109+ extra_content = {
110+ "creation_content" : {EventContentFields .ROOM_TYPE : RoomTypes .SPACE }
111+ },
112+ )
113+ self .room = self .helper .create_room_as (self .user , tok = self .token )
114+ self ._add_child (self .space , self .room , self .token )
115+
103116 def _add_child (self , space_id : str , room_id : str , token : str ) -> None :
104117 """Add a child room to a space."""
105118 self .helper .send_state (
@@ -128,43 +141,32 @@ def _assert_events(
128141
129142 def test_simple_space (self ):
130143 """Test a simple space with a single room."""
131- space = self .helper .create_room_as (self .user , tok = self .token )
132- room = self .helper .create_room_as (self .user , tok = self .token )
133- self ._add_child (space , room , self .token )
134-
135- result = self .get_success (self .handler .get_space_summary (self .user , space ))
144+ result = self .get_success (self .handler .get_space_summary (self .user , self .space ))
136145 # The result should have the space and the room in it, along with a link
137146 # from space -> room.
138- self ._assert_rooms (result , [space , room ])
139- self ._assert_events (result , [(space , room )])
147+ self ._assert_rooms (result , [self . space , self . room ])
148+ self ._assert_events (result , [(self . space , self . room )])
140149
141150 def test_visibility (self ):
142151 """A user not in a space cannot inspect it."""
143- space = self .helper .create_room_as (self .user , tok = self .token )
144- room = self .helper .create_room_as (self .user , tok = self .token )
145- self ._add_child (space , room , self .token )
146-
147152 user2 = self .register_user ("user2" , "pass" )
148153 token2 = self .login ("user2" , "pass" )
149154
150155 # The user cannot see the space.
151- self .get_failure (self .handler .get_space_summary (user2 , space ), AuthError )
156+ self .get_failure (self .handler .get_space_summary (user2 , self . space ), AuthError )
152157
153158 # Joining the room causes it to be visible.
154- self .helper .join (space , user2 , tok = token2 )
155- result = self .get_success (self .handler .get_space_summary (user2 , space ))
159+ self .helper .join (self . space , user2 , tok = token2 )
160+ result = self .get_success (self .handler .get_space_summary (user2 , self . space ))
156161
157162 # The result should only have the space, but includes the link to the room.
158- self ._assert_rooms (result , [space ])
159- self ._assert_events (result , [(space , room )])
163+ self ._assert_rooms (result , [self . space ])
164+ self ._assert_events (result , [(self . space , self . room )])
160165
161166 def test_world_readable (self ):
162167 """A world-readable room is visible to everyone."""
163- space = self .helper .create_room_as (self .user , tok = self .token )
164- room = self .helper .create_room_as (self .user , tok = self .token )
165- self ._add_child (space , room , self .token )
166168 self .helper .send_state (
167- space ,
169+ self . space ,
168170 event_type = "m.room.history_visibility" ,
169171 body = {"history_visibility" : "world_readable" },
170172 tok = self .token ,
@@ -173,6 +175,6 @@ def test_world_readable(self):
173175 user2 = self .register_user ("user2" , "pass" )
174176
175177 # The space should be visible, as well as the link to the room.
176- result = self .get_success (self .handler .get_space_summary (user2 , space ))
177- self ._assert_rooms (result , [space ])
178- self ._assert_events (result , [(space , room )])
178+ result = self .get_success (self .handler .get_space_summary (user2 , self . space ))
179+ self ._assert_rooms (result , [self . space ])
180+ self ._assert_events (result , [(self . space , self . room )])
0 commit comments