langflow/tests/test_frontend_nodes.py
Gabriel Almeida e28c3dc18e feat: new tests
2023-03-31 23:15:22 -03:00

60 lines
2.2 KiB
Python

import pytest
from typing import Dict, List
from langflow.template.base import TemplateField, FrontendNode, Template
from langflow.interface.base import LangChainTypeCreator
from langflow.interface.agents.base import AgentCreator
@pytest.fixture
def sample_template_field() -> TemplateField:
return TemplateField(name="test_field", field_type="str")
@pytest.fixture
def sample_template(sample_template_field: TemplateField) -> Template:
return Template(type_name="test_template", fields=[sample_template_field])
@pytest.fixture
def sample_frontend_node(sample_template: Template) -> FrontendNode:
return FrontendNode(
template=sample_template,
description="test description",
base_classes=["base_class1", "base_class2"],
name="test_frontend_node",
)
def test_template_field_defaults(sample_template_field: TemplateField):
assert sample_template_field.field_type == "str"
assert sample_template_field.required == False
assert sample_template_field.placeholder == ""
assert sample_template_field.is_list == False
assert sample_template_field.show == True
assert sample_template_field.multiline == False
assert sample_template_field.value == None
assert sample_template_field.suffixes == []
assert sample_template_field.file_types == []
assert sample_template_field.content == None
assert sample_template_field.password == False
assert sample_template_field.name == "test_field"
def test_template_to_dict(
sample_template: Template, sample_template_field: TemplateField
):
template_dict = sample_template.to_dict()
assert template_dict["_type"] == "test_template"
assert len(template_dict) == 2 # _type and test_field
assert "test_field" in template_dict
assert "type" in template_dict["test_field"]
assert "required" in template_dict["test_field"]
def test_frontend_node_to_dict(sample_frontend_node: FrontendNode):
node_dict = sample_frontend_node.to_dict()
assert len(node_dict) == 1
assert "test_frontend_node" in node_dict
assert "description" in node_dict["test_frontend_node"]
assert "template" in node_dict["test_frontend_node"]
assert "base_classes" in node_dict["test_frontend_node"]