diff --git a/api/core/app/segments/parser.py b/api/core/app/segments/parser.py index 7061a4d878..de6c796652 100644 --- a/api/core/app/segments/parser.py +++ b/api/core/app/segments/parser.py @@ -10,7 +10,7 @@ VARIABLE_PATTERN = re.compile(r'\{\{#([a-zA-Z0-9_]{1,50}(?:\.[a-zA-Z_][a-zA-Z0-9 def convert_template(*, template: str, variable_pool: VariablePool): parts = re.split(VARIABLE_PATTERN, template) segments = [] - for part in parts: + for part in filter(lambda x: x, parts): if '.' in part and (value := variable_pool.get(part.split('.'))): segments.append(value) else: diff --git a/api/tests/unit_tests/core/app/test_segment.py b/api/tests/unit_tests/core/app/test_segment.py index 7ef37ff646..414404b7d0 100644 --- a/api/tests/unit_tests/core/app/test_segment.py +++ b/api/tests/unit_tests/core/app/test_segment.py @@ -1,4 +1,4 @@ -from core.app.segments import SecretVariable, parser +from core.app.segments import SecretVariable, StringSegment, parser from core.helper import encrypter from core.workflow.entities.node_entities import SystemVariable from core.workflow.entities.variable_pool import VariablePool @@ -51,3 +51,4 @@ def test_convert_variable_to_segment_group(): segments_group = parser.convert_template(template=template, variable_pool=variable_pool) assert segments_group.text == 'fake-user-id' assert segments_group.log == 'fake-user-id' + assert segments_group.value == [StringSegment(value='fake-user-id')]