From e3a1f39c87b2840302861130b7237af94b72827b Mon Sep 17 00:00:00 2001 From: Gabriel Luiz Freitas Almeida Date: Mon, 4 Dec 2023 17:22:44 -0300 Subject: [PATCH] Add tests for custom component validation and template generation --- tests/test_custom_component.py | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/tests/test_custom_component.py b/tests/test_custom_component.py index 64165fa9a..4e0566010 100644 --- a/tests/test_custom_component.py +++ b/tests/test_custom_component.py @@ -8,6 +8,7 @@ from fastapi import HTTPException from langflow.interface.custom.base import CustomComponent from langflow.interface.custom.code_parser import CodeParser, CodeSyntaxError from langflow.interface.custom.component import Component, ComponentCodeNullError +from langflow.interface.types import build_langchain_template_custom_component, create_and_validate_component from langflow.services.database.models.flow import Flow, FlowCreate code_default = """ @@ -529,3 +530,22 @@ def test_build_config_field_value_keys(component): config = component.build_config() field_values = config["fields"].values() assert all("type" in value for value in field_values) + + +def test_create_and_validate_component_valid_code(test_component_code): + component = create_and_validate_component(test_component_code) + assert isinstance(component, CustomComponent) + + +def test_build_langchain_template_custom_component_valid_code(test_component_code): + component = create_and_validate_component(test_component_code) + frontend_node = build_langchain_template_custom_component(component) + assert isinstance(frontend_node, dict) + template = frontend_node["template"] + assert isinstance(template, dict) + assert "param" in template + param_options = template["param"]["options"] + # Now run it again with an update field + frontend_node = build_langchain_template_custom_component(component, update_field="param") + new_param_options = frontend_node["template"]["param"]["options"] + assert param_options != new_param_options