@@ -147,6 +147,37 @@ def test_from_dict(self, monkeypatch):
147147 assert langfuse_connector .host is None
148148 assert langfuse_connector .langfuse_client_kwargs is None
149149
150+ def test_from_dict_without_span_handler (self , monkeypatch ):
151+ monkeypatch .setenv ("LANGFUSE_SECRET_KEY" , "secret" )
152+ monkeypatch .setenv ("LANGFUSE_PUBLIC_KEY" , "public" )
153+
154+ # All keys that would point to None (span_handler, host, langfuse_client_kwargs) are intentionally absent
155+ data = {
156+ "type" : "haystack_integrations.components.connectors.langfuse.langfuse_connector.LangfuseConnector" ,
157+ "init_parameters" : {
158+ "name" : "Chat example - OpenAI" ,
159+ "public" : False ,
160+ "secret_key" : {
161+ "type" : "env_var" ,
162+ "env_vars" : ["LANGFUSE_SECRET_KEY" ],
163+ "strict" : True ,
164+ },
165+ "public_key" : {
166+ "type" : "env_var" ,
167+ "env_vars" : ["LANGFUSE_PUBLIC_KEY" ],
168+ "strict" : True ,
169+ },
170+ },
171+ }
172+ langfuse_connector = LangfuseConnector .from_dict (data )
173+ assert langfuse_connector .name == "Chat example - OpenAI"
174+ assert langfuse_connector .public is False
175+ assert langfuse_connector .secret_key == Secret .from_env_var ("LANGFUSE_SECRET_KEY" )
176+ assert langfuse_connector .public_key == Secret .from_env_var ("LANGFUSE_PUBLIC_KEY" )
177+ assert langfuse_connector .span_handler is None
178+ assert langfuse_connector .host is None
179+ assert langfuse_connector .langfuse_client_kwargs is None
180+
150181 def test_from_dict_with_params (self , monkeypatch ):
151182 monkeypatch .setenv ("LANGFUSE_SECRET_KEY" , "secret" )
152183 monkeypatch .setenv ("LANGFUSE_PUBLIC_KEY" , "public" )
0 commit comments