1
1
from typing import Any , Dict , List , Optional
2
2
from jinja2 import TemplateSyntaxError
3
+ import logging
3
4
import pytest
4
5
5
6
from haystack .components .builders .chat_prompt_builder import ChatPromptBuilder
@@ -335,6 +336,16 @@ def test_example_in_pipeline_simple(self):
335
336
}
336
337
assert result == expected_dynamic
337
338
339
+ def test_warning_no_required_variables (self , caplog ):
340
+ with caplog .at_level (logging .WARNING ):
341
+ _ = ChatPromptBuilder (
342
+ template = [
343
+ ChatMessage .from_system ("Write your response in this language:{{language}}" ),
344
+ ChatMessage .from_user ("Tell me about {{location}}" ),
345
+ ]
346
+ )
347
+ assert "ChatPromptBuilder has 2 prompt variables, but `required_variables` is not set. " in caplog .text
348
+
338
349
339
350
class TestChatPromptBuilderDynamic :
340
351
def test_multiple_templated_chat_messages (self ):
@@ -521,13 +532,13 @@ def run(self):
521
532
}
522
533
523
534
def test_to_dict (self ):
524
- component = ChatPromptBuilder (
535
+ comp = ChatPromptBuilder (
525
536
template = [ChatMessage .from_user ("text and {var}" ), ChatMessage .from_assistant ("content {required_var}" )],
526
537
variables = ["var" , "required_var" ],
527
538
required_variables = ["required_var" ],
528
539
)
529
540
530
- assert component .to_dict () == {
541
+ assert comp .to_dict () == {
531
542
"type" : "haystack.components.builders.chat_prompt_builder.ChatPromptBuilder" ,
532
543
"init_parameters" : {
533
544
"template" : [
@@ -545,7 +556,7 @@ def test_to_dict(self):
545
556
}
546
557
547
558
def test_from_dict (self ):
548
- component = ChatPromptBuilder .from_dict (
559
+ comp = ChatPromptBuilder .from_dict (
549
560
data = {
550
561
"type" : "haystack.components.builders.chat_prompt_builder.ChatPromptBuilder" ,
551
562
"init_parameters" : {
@@ -564,21 +575,21 @@ def test_from_dict(self):
564
575
}
565
576
)
566
577
567
- assert component .template == [
578
+ assert comp .template == [
568
579
ChatMessage .from_user ("text and {var}" ),
569
580
ChatMessage .from_assistant ("content {required_var}" ),
570
581
]
571
- assert component ._variables == ["var" , "required_var" ]
572
- assert component ._required_variables == ["required_var" ]
582
+ assert comp ._variables == ["var" , "required_var" ]
583
+ assert comp ._required_variables == ["required_var" ]
573
584
574
585
def test_from_dict_template_none (self ):
575
- component = ChatPromptBuilder .from_dict (
586
+ comp = ChatPromptBuilder .from_dict (
576
587
data = {
577
588
"type" : "haystack.components.builders.chat_prompt_builder.ChatPromptBuilder" ,
578
589
"init_parameters" : {"template" : None },
579
590
}
580
591
)
581
592
582
- assert component .template is None
583
- assert component ._variables is None
584
- assert component ._required_variables is None
593
+ assert comp .template is None
594
+ assert comp ._variables is None
595
+ assert comp ._required_variables is None
0 commit comments