diff --git a/backend/chainlit/socket.py b/backend/chainlit/socket.py index 740f0c276a..74306005ff 100644 --- a/backend/chainlit/socket.py +++ b/backend/chainlit/socket.py @@ -102,6 +102,7 @@ async def resume_thread(session: WebsocketSession): def load_user_env(user_env): + user_env_dict = {} if user_env: user_env_dict = json.loads(user_env) # Check user env diff --git a/backend/tests/test_socket.py b/backend/tests/test_socket.py index e45247b744..e20959c6d6 100644 --- a/backend/tests/test_socket.py +++ b/backend/tests/test_socket.py @@ -403,10 +403,9 @@ def test_load_user_env_none_with_required_keys(self): with patch("chainlit.socket.config") as mock_config: mock_config.project.user_env = ["API_KEY"] - # The function has a bug - it raises UnboundLocalError instead of ConnectionRefusedError - # Python 3.10: "referenced before assignment" - # Python 3.11+: "cannot access local variable" - with pytest.raises(UnboundLocalError, match="user_env_dict"): + with pytest.raises( + ConnectionRefusedError, match="Missing user environment variables" + ): load_user_env(None) def test_load_user_env_none_without_required_keys(self): @@ -414,10 +413,9 @@ def test_load_user_env_none_without_required_keys(self): with patch("chainlit.socket.config") as mock_config: mock_config.project.user_env = [] - # The function has a bug - it raises NameError when user_env is None - # even when no required keys are configured - with pytest.raises(NameError, match="user_env_dict"): - load_user_env(None) + result = load_user_env(None) + + assert result == {} class TestCleanSession: