mirror of
http://112.124.100.131/huang.ze/ebiz-dify-ai.git
synced 2025-12-11 11:56:53 +08:00
improve: generalize transformations and scripts of runner and preloads into TemplateTransformer (#4487)
This commit is contained in:
@@ -2,6 +2,7 @@ from textwrap import dedent
|
||||
|
||||
from core.helper.code_executor.code_executor import CodeExecutor, CodeLanguage
|
||||
from core.helper.code_executor.javascript.javascript_code_provider import JavascriptCodeProvider
|
||||
from core.helper.code_executor.javascript.javascript_transformer import NodeJsTemplateTransformer
|
||||
|
||||
CODE_LANGUAGE = CodeLanguage.JAVASCRIPT
|
||||
|
||||
@@ -23,7 +24,8 @@ def test_javascript_json():
|
||||
|
||||
def test_javascript_with_code_template():
|
||||
result = CodeExecutor.execute_workflow_code_template(
|
||||
language=CODE_LANGUAGE, code=JavascriptCodeProvider.get_default_code(), inputs={'arg1': 'Hello', 'arg2': 'World'})
|
||||
language=CODE_LANGUAGE, code=JavascriptCodeProvider.get_default_code(),
|
||||
inputs={'arg1': 'Hello', 'arg2': 'World'})
|
||||
assert result == {'result': 'HelloWorld'}
|
||||
|
||||
|
||||
@@ -32,3 +34,10 @@ def test_javascript_list_default_available_packages():
|
||||
|
||||
# no default packages available for javascript
|
||||
assert len(packages) == 0
|
||||
|
||||
|
||||
def test_javascript_get_runner_script():
|
||||
runner_script = NodeJsTemplateTransformer.get_runner_script()
|
||||
assert runner_script.count(NodeJsTemplateTransformer._code_placeholder) == 1
|
||||
assert runner_script.count(NodeJsTemplateTransformer._inputs_placeholder) == 1
|
||||
assert runner_script.count(NodeJsTemplateTransformer._result_tag) == 2
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import base64
|
||||
|
||||
from core.helper.code_executor.code_executor import CodeExecutor, CodeLanguage
|
||||
from core.helper.code_executor.jinja2.jinja2_transformer import JINJA2_PRELOAD, PYTHON_RUNNER
|
||||
from core.helper.code_executor.jinja2.jinja2_transformer import Jinja2TemplateTransformer
|
||||
|
||||
CODE_LANGUAGE = CodeLanguage.JINJA2
|
||||
|
||||
@@ -9,8 +9,12 @@ CODE_LANGUAGE = CodeLanguage.JINJA2
|
||||
def test_jinja2():
|
||||
template = 'Hello {{template}}'
|
||||
inputs = base64.b64encode(b'{"template": "World"}').decode('utf-8')
|
||||
code = PYTHON_RUNNER.replace('{{code}}', template).replace('{{inputs}}', inputs)
|
||||
result = CodeExecutor.execute_code(language=CODE_LANGUAGE, preload=JINJA2_PRELOAD, code=code)
|
||||
code = (Jinja2TemplateTransformer.get_runner_script()
|
||||
.replace(Jinja2TemplateTransformer._code_placeholder, template)
|
||||
.replace(Jinja2TemplateTransformer._inputs_placeholder, inputs))
|
||||
result = CodeExecutor.execute_code(language=CODE_LANGUAGE,
|
||||
preload=Jinja2TemplateTransformer.get_preload_script(),
|
||||
code=code)
|
||||
assert result == '<<RESULT>>Hello World<<RESULT>>\n'
|
||||
|
||||
|
||||
@@ -18,3 +22,10 @@ def test_jinja2_with_code_template():
|
||||
result = CodeExecutor.execute_workflow_code_template(
|
||||
language=CODE_LANGUAGE, code='Hello {{template}}', inputs={'template': 'World'})
|
||||
assert result == {'result': 'Hello World'}
|
||||
|
||||
|
||||
def test_jinja2_get_runner_script():
|
||||
runner_script = Jinja2TemplateTransformer.get_runner_script()
|
||||
assert runner_script.count(Jinja2TemplateTransformer._code_placeholder) == 1
|
||||
assert runner_script.count(Jinja2TemplateTransformer._inputs_placeholder) == 1
|
||||
assert runner_script.count(Jinja2TemplateTransformer._result_tag) == 2
|
||||
|
||||
@@ -3,6 +3,7 @@ from textwrap import dedent
|
||||
|
||||
from core.helper.code_executor.code_executor import CodeExecutor, CodeLanguage
|
||||
from core.helper.code_executor.python3.python3_code_provider import Python3CodeProvider
|
||||
from core.helper.code_executor.python3.python3_transformer import Python3TemplateTransformer
|
||||
|
||||
CODE_LANGUAGE = CodeLanguage.PYTHON3
|
||||
|
||||
@@ -35,3 +36,10 @@ def test_python3_list_default_available_packages():
|
||||
|
||||
# check JSON serializable
|
||||
assert len(str(json.dumps(packages))) > 0
|
||||
|
||||
|
||||
def test_python3_get_runner_script():
|
||||
runner_script = Python3TemplateTransformer.get_runner_script()
|
||||
assert runner_script.count(Python3TemplateTransformer._code_placeholder) == 1
|
||||
assert runner_script.count(Python3TemplateTransformer._inputs_placeholder) == 1
|
||||
assert runner_script.count(Python3TemplateTransformer._result_tag) == 2
|
||||
|
||||
Reference in New Issue
Block a user