@@ -228,6 +228,98 @@ def test_requires_warp_environment_id(self) -> None:
228228 workspace = Path ("/tmp" ),
229229 )
230230
231+ @patch .dict (os .environ , {"WARP_ENVIRONMENT_ID" : "default-env" }, clear = True )
232+ def test_defaults_session_sharing_to_viewer (self ) -> None :
233+ config = build_agent_config (
234+ config_name = "review-pull-request" ,
235+ workspace = Path ("/tmp" ),
236+ )
237+ self .assertEqual (
238+ dict (config ).get ("session_sharing" ),
239+ {"public_access" : "VIEWER" },
240+ )
241+
242+ @patch .dict (
243+ os .environ ,
244+ {
245+ "WARP_ENVIRONMENT_ID" : "default-env" ,
246+ "WARP_SESSION_SHARING_PUBLIC_ACCESS" : "EDITOR" ,
247+ },
248+ clear = True ,
249+ )
250+ def test_session_sharing_can_be_set_to_editor (self ) -> None :
251+ config = build_agent_config (
252+ config_name = "review-pull-request" ,
253+ workspace = Path ("/tmp" ),
254+ )
255+ self .assertEqual (
256+ dict (config ).get ("session_sharing" ),
257+ {"public_access" : "EDITOR" },
258+ )
259+
260+ @patch .dict (
261+ os .environ ,
262+ {
263+ "WARP_ENVIRONMENT_ID" : "default-env" ,
264+ "WARP_SESSION_SHARING_PUBLIC_ACCESS" : "viewer" ,
265+ },
266+ clear = True ,
267+ )
268+ def test_session_sharing_is_case_insensitive (self ) -> None :
269+ config = build_agent_config (
270+ config_name = "review-pull-request" ,
271+ workspace = Path ("/tmp" ),
272+ )
273+ self .assertEqual (
274+ dict (config ).get ("session_sharing" ),
275+ {"public_access" : "VIEWER" },
276+ )
277+
278+ @patch .dict (
279+ os .environ ,
280+ {
281+ "WARP_ENVIRONMENT_ID" : "default-env" ,
282+ "WARP_SESSION_SHARING_PUBLIC_ACCESS" : "none" ,
283+ },
284+ clear = True ,
285+ )
286+ def test_session_sharing_can_be_disabled (self ) -> None :
287+ config = build_agent_config (
288+ config_name = "review-pull-request" ,
289+ workspace = Path ("/tmp" ),
290+ )
291+ self .assertNotIn ("session_sharing" , dict (config ))
292+
293+ @patch .dict (
294+ os .environ ,
295+ {
296+ "WARP_ENVIRONMENT_ID" : "default-env" ,
297+ "WARP_SESSION_SHARING_PUBLIC_ACCESS" : "off" ,
298+ },
299+ clear = True ,
300+ )
301+ def test_session_sharing_off_also_disables (self ) -> None :
302+ config = build_agent_config (
303+ config_name = "review-pull-request" ,
304+ workspace = Path ("/tmp" ),
305+ )
306+ self .assertNotIn ("session_sharing" , dict (config ))
307+
308+ @patch .dict (
309+ os .environ ,
310+ {
311+ "WARP_ENVIRONMENT_ID" : "default-env" ,
312+ "WARP_SESSION_SHARING_PUBLIC_ACCESS" : "bogus" ,
313+ },
314+ clear = True ,
315+ )
316+ def test_unknown_session_sharing_value_disables_sharing (self ) -> None :
317+ config = build_agent_config (
318+ config_name = "review-pull-request" ,
319+ workspace = Path ("/tmp" ),
320+ )
321+ self .assertNotIn ("session_sharing" , dict (config ))
322+
231323
232324if __name__ == "__main__" :
233325 unittest .main ()
0 commit comments