@@ -352,10 +352,32 @@ def test_template_assigned_variables_from_required_inputs(self) -> None:
352352 """
353353
354354 builder = PromptBuilder (template = template , required_variables = "*" )
355- docs = [Document (content = "Doc 1" ), Document (content = "Doc 2" )]
356355
357- res = builder .run (docs = docs , existing_documents = None )
356+ builder = PromptBuilder (template = template , required_variables = "*" )
357+ assert set (builder .variables ) == {"docs" , "existing_documents" }
358+
359+ def test_variables_correct_with_tuple_assignment (self ):
360+ template = """{% if existing_documents is not none %}
361+ {% set x, y = (existing_documents|length, 1) %}
362+ {% else %}
363+ {% set x, y = (0, 1) %}
364+ {% endif %}
365+ x={{ x }}, y={{ y }}
366+ """
367+ builder = PromptBuilder (template = template , required_variables = "*" )
368+ assert set (builder .variables ) == {"existing_documents" }
369+ res = builder .run (existing_documents = None )
370+ assert "x=0, y=1" in res ["prompt" ]
358371
359- assert "<document reference=" in res ["prompt" ]
360- assert "Doc 1" in res ["prompt" ]
361- assert "Doc 2" in res ["prompt" ]
372+ def test_variables_correct_with_list_assignment (self ):
373+ template = """{% if existing_documents is not none %}
374+ {% set x, y = [existing_documents|length, 1] %}
375+ {% else %}
376+ {% set x, y = [0, 1] %}
377+ {% endif %}
378+ x={{ x }}, y={{ y }}
379+ """
380+ builder = PromptBuilder (template = template , required_variables = "*" )
381+ assert set (builder .variables ) == {"existing_documents" }
382+ res = builder .run (existing_documents = None )
383+ assert "x=0, y=1" in res ["prompt" ]
0 commit comments