Ver Fonte

feat(api/core/app/segments/parser.py): Remove blank segment in `convert_template` (#6709)

Signed-off-by: -LAN- <laipz8200@outlook.com>
-LAN- há 9 meses atrás
pai
commit
5d77dc4f58

+ 1 - 1
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:

+ 2 - 1
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')]