@@ -116,9 +116,70 @@ async def test_create_and_list_sessions(service_type):
116116 app_name = app_name , user_id = user_id
117117 )
118118 sessions = list_sessions_response .sessions
119- for i in range (len (sessions )):
120- assert sessions [i ].id == session_ids [i ]
121- assert sessions [i ].state == {'key' : 'value' + session_ids [i ]}
119+ assert len (sessions ) == len (session_ids )
120+ assert {s .id for s in sessions } == set (session_ids )
121+ for session in sessions :
122+ assert session .state == {'key' : 'value' + session .id }
123+
124+
125+ @pytest .mark .asyncio
126+ @pytest .mark .parametrize (
127+ 'service_type' , [SessionServiceType .IN_MEMORY , SessionServiceType .DATABASE ]
128+ )
129+ async def test_list_sessions_all_users (service_type ):
130+ session_service = get_session_service (service_type )
131+ app_name = 'my_app'
132+ user_id_1 = 'user1'
133+ user_id_2 = 'user2'
134+
135+ await session_service .create_session (
136+ app_name = app_name ,
137+ user_id = user_id_1 ,
138+ session_id = 'session1a' ,
139+ state = {'key' : 'value1a' },
140+ )
141+ await session_service .create_session (
142+ app_name = app_name ,
143+ user_id = user_id_1 ,
144+ session_id = 'session1b' ,
145+ state = {'key' : 'value1b' },
146+ )
147+ await session_service .create_session (
148+ app_name = app_name ,
149+ user_id = user_id_2 ,
150+ session_id = 'session2a' ,
151+ state = {'key' : 'value2a' },
152+ )
153+
154+ # List sessions for user1
155+ list_sessions_response_1 = await session_service .list_sessions (
156+ app_name = app_name , user_id = user_id_1
157+ )
158+ sessions_1 = list_sessions_response_1 .sessions
159+ assert len (sessions_1 ) == 2
160+ assert {s .id for s in sessions_1 } == {'session1a' , 'session1b' }
161+ for session in sessions_1 :
162+ if session .id == 'session1a' :
163+ assert session .state == {'key' : 'value1a' }
164+ else :
165+ assert session .state == {'key' : 'value1b' }
166+
167+ # List sessions for user2
168+ list_sessions_response_2 = await session_service .list_sessions (
169+ app_name = app_name , user_id = user_id_2
170+ )
171+ sessions_2 = list_sessions_response_2 .sessions
172+ assert len (sessions_2 ) == 1
173+ assert sessions_2 [0 ].id == 'session2a'
174+ assert sessions_2 [0 ].state == {'key' : 'value2a' }
175+
176+ # List sessions for all users
177+ list_sessions_response_all = await session_service .list_sessions (
178+ app_name = app_name , user_id = None
179+ )
180+ sessions_all = list_sessions_response_all .sessions
181+ assert len (sessions_all ) == 3
182+ assert {s .id for s in sessions_all } == {'session1a' , 'session1b' , 'session2a' }
122183
123184
124185@pytest .mark .asyncio
0 commit comments