fix: update type to silence warning and memory chatbot json (#3265)
* fix: update value type in DefaultPromptField from str to Any for increased flexibility in input handling * fix: replace _instantiate_input with instantiate_input for consistency in input instantiation across the codebase * chore: update test durations * update memory chatbot
This commit is contained in:
parent
0eb694f1d7
commit
9da2c34551
5 changed files with 369 additions and 361 deletions
|
|
@ -1039,7 +1039,7 @@
|
|||
"show": true,
|
||||
"title_case": false,
|
||||
"type": "code",
|
||||
"value": "from langflow.custom import Component\nfrom langflow.helpers.data import data_to_text\nfrom langflow.inputs import HandleInput\nfrom langflow.io import DropdownInput, IntInput, MessageTextInput, MultilineInput, Output\nfrom langflow.memory import get_messages, LCBuiltinChatMemory\nfrom langflow.schema import Data\nfrom langflow.schema.message import Message\nfrom langflow.field_typing import BaseChatMemory\nfrom langchain.memory import ConversationBufferMemory\n\nfrom langflow.utils.constants import MESSAGE_SENDER_AI, MESSAGE_SENDER_USER\n\n\nclass MemoryComponent(Component):\n display_name = \"Chat Memory\"\n description = \"Retrieves stored chat messages from Langflow tables or an external memory.\"\n icon = \"message-square-more\"\n name = \"Memory\"\n\n inputs = [\n HandleInput(\n name=\"memory\",\n display_name=\"External Memory\",\n input_types=[\"BaseChatMessageHistory\"],\n info=\"Retrieve messages from an external memory. If empty, it will use the Langflow tables.\",\n ),\n DropdownInput(\n name=\"sender\",\n display_name=\"Sender Type\",\n options=[MESSAGE_SENDER_AI, MESSAGE_SENDER_USER, \"Machine and User\"],\n value=\"Machine and User\",\n info=\"Filter by sender type.\",\n advanced=True,\n ),\n MessageTextInput(\n name=\"sender_name\",\n display_name=\"Sender Name\",\n info=\"Filter by sender name.\",\n advanced=True,\n ),\n IntInput(\n name=\"n_messages\",\n display_name=\"Number of Messages\",\n value=100,\n info=\"Number of messages to retrieve.\",\n advanced=True,\n ),\n MessageTextInput(\n name=\"session_id\",\n display_name=\"Session ID\",\n info=\"The session ID of the chat. If empty, the current session ID parameter will be used.\",\n advanced=True,\n ),\n DropdownInput(\n name=\"order\",\n display_name=\"Order\",\n options=[\"Ascending\", \"Descending\"],\n value=\"Ascending\",\n info=\"Order of the messages.\",\n advanced=True,\n ),\n MultilineInput(\n name=\"template\",\n display_name=\"Template\",\n info=\"The template to use for formatting the data. It can contain the keys {text}, {sender} or any other key in the message data.\",\n value=\"{sender_name}: {text}\",\n advanced=True,\n ),\n ]\n\n outputs = [\n Output(display_name=\"Messages (Data)\", name=\"messages\", method=\"retrieve_messages\"),\n Output(display_name=\"Messages (Text)\", name=\"messages_text\", method=\"retrieve_messages_as_text\"),\n Output(display_name=\"Memory\", name=\"lc_memory\", method=\"build_lc_memory\"),\n ]\n\n def retrieve_messages(self) -> Data:\n sender = self.sender\n sender_name = self.sender_name\n session_id = self.session_id\n n_messages = self.n_messages\n order = \"DESC\" if self.order == \"Descending\" else \"ASC\"\n\n if sender == \"Machine and User\":\n sender = None\n\n if self.memory:\n # override session_id\n self.memory.session_id = session_id\n\n stored = self.memory.messages\n # langchain memories are supposed to return messages in ascending order\n if order == \"DESC\":\n stored = stored[::-1]\n if n_messages:\n stored = stored[:n_messages]\n stored = [Message.from_lc_message(m) for m in stored]\n if sender:\n expected_type = MESSAGE_SENDER_AI if sender == MESSAGE_SENDER_AI else MESSAGE_SENDER_USER\n stored = [m for m in stored if m.type == expected_type]\n else:\n stored = get_messages(\n sender=sender,\n sender_name=sender_name,\n session_id=session_id,\n limit=n_messages,\n order=order,\n )\n self.status = stored\n return stored\n\n def retrieve_messages_as_text(self) -> Message:\n stored_text = data_to_text(self.template, self.retrieve_messages())\n self.status = stored_text\n return Message(text=stored_text)\n\n def build_lc_memory(self) -> BaseChatMemory:\n if self.memory:\n chat_memory = self.memory\n else:\n chat_memory = LCBuiltinChatMemory(flow_id=self.graph.flow_id, session_id=self.session_id)\n return ConversationBufferMemory(chat_memory=chat_memory)\n"
|
||||
"value": "from langchain.memory import ConversationBufferMemory\n\nfrom langflow.custom import Component\nfrom langflow.field_typing import BaseChatMemory\nfrom langflow.helpers.data import data_to_text\nfrom langflow.inputs import HandleInput\nfrom langflow.io import DropdownInput, IntInput, MessageTextInput, MultilineInput, Output\nfrom langflow.memory import LCBuiltinChatMemory, get_messages\nfrom langflow.schema import Data\nfrom langflow.schema.message import Message\nfrom langflow.utils.constants import MESSAGE_SENDER_AI, MESSAGE_SENDER_USER\n\n\nclass MemoryComponent(Component):\n display_name = \"Chat Memory\"\n description = \"Retrieves stored chat messages from Langflow tables or an external memory.\"\n icon = \"message-square-more\"\n name = \"Memory\"\n\n inputs = [\n HandleInput(\n name=\"memory\",\n display_name=\"External Memory\",\n input_types=[\"BaseChatMessageHistory\"],\n info=\"Retrieve messages from an external memory. If empty, it will use the Langflow tables.\",\n ),\n DropdownInput(\n name=\"sender\",\n display_name=\"Sender Type\",\n options=[MESSAGE_SENDER_AI, MESSAGE_SENDER_USER, \"Machine and User\"],\n value=\"Machine and User\",\n info=\"Filter by sender type.\",\n advanced=True,\n ),\n MessageTextInput(\n name=\"sender_name\",\n display_name=\"Sender Name\",\n info=\"Filter by sender name.\",\n advanced=True,\n ),\n IntInput(\n name=\"n_messages\",\n display_name=\"Number of Messages\",\n value=100,\n info=\"Number of messages to retrieve.\",\n advanced=True,\n ),\n MessageTextInput(\n name=\"session_id\",\n display_name=\"Session ID\",\n info=\"The session ID of the chat. If empty, the current session ID parameter will be used.\",\n advanced=True,\n ),\n DropdownInput(\n name=\"order\",\n display_name=\"Order\",\n options=[\"Ascending\", \"Descending\"],\n value=\"Ascending\",\n info=\"Order of the messages.\",\n advanced=True,\n ),\n MultilineInput(\n name=\"template\",\n display_name=\"Template\",\n info=\"The template to use for formatting the data. It can contain the keys {text}, {sender} or any other key in the message data.\",\n value=\"{sender_name}: {text}\",\n advanced=True,\n ),\n ]\n\n outputs = [\n Output(display_name=\"Messages (Data)\", name=\"messages\", method=\"retrieve_messages\"),\n Output(display_name=\"Messages (Text)\", name=\"messages_text\", method=\"retrieve_messages_as_text\"),\n Output(display_name=\"Memory\", name=\"lc_memory\", method=\"build_lc_memory\"),\n ]\n\n def retrieve_messages(self) -> Data:\n sender = self.sender\n sender_name = self.sender_name\n session_id = self.session_id\n n_messages = self.n_messages\n order = \"DESC\" if self.order == \"Descending\" else \"ASC\"\n\n if sender == \"Machine and User\":\n sender = None\n\n if self.memory:\n # override session_id\n self.memory.session_id = session_id\n\n stored = self.memory.messages\n # langchain memories are supposed to return messages in ascending order\n if order == \"DESC\":\n stored = stored[::-1]\n if n_messages:\n stored = stored[:n_messages]\n stored = [Message.from_lc_message(m) for m in stored]\n if sender:\n expected_type = MESSAGE_SENDER_AI if sender == MESSAGE_SENDER_AI else MESSAGE_SENDER_USER\n stored = [m for m in stored if m.type == expected_type]\n else:\n stored = get_messages(\n sender=sender,\n sender_name=sender_name,\n session_id=session_id,\n limit=n_messages,\n order=order,\n )\n self.status = stored\n return stored\n\n def retrieve_messages_as_text(self) -> Message:\n stored_text = data_to_text(self.template, self.retrieve_messages())\n self.status = stored_text\n return Message(text=stored_text)\n\n def build_lc_memory(self) -> BaseChatMemory:\n if self.memory:\n chat_memory = self.memory\n else:\n chat_memory = LCBuiltinChatMemory(flow_id=self.flow_id, session_id=self.session_id)\n return ConversationBufferMemory(chat_memory=chat_memory)\n"
|
||||
},
|
||||
"memory": {
|
||||
"advanced": false,
|
||||
|
|
|
|||
|
|
@ -471,7 +471,7 @@ class DefaultPromptField(Input):
|
|||
advanced: bool = False
|
||||
multiline: bool = True
|
||||
input_types: list[str] = DEFAULT_PROMPT_INTUT_TYPES
|
||||
value: str = "" # Set the value to empty string
|
||||
value: Any = "" # Set the value to empty string
|
||||
|
||||
|
||||
InputTypes = Union[
|
||||
|
|
@ -500,7 +500,7 @@ InputTypes = Union[
|
|||
InputTypesMap: dict[str, type[InputTypes]] = {t.__name__: t for t in get_args(InputTypes)}
|
||||
|
||||
|
||||
def _instantiate_input(input_type: str, data: dict) -> InputTypes:
|
||||
def instantiate_input(input_type: str, data: dict) -> InputTypes:
|
||||
input_type_class = InputTypesMap.get(input_type)
|
||||
if "type" in data:
|
||||
# Replate with field_type
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ from typing import Callable, Union, cast
|
|||
|
||||
from pydantic import BaseModel, Field, model_serializer
|
||||
|
||||
from langflow.inputs.inputs import InputTypes, _instantiate_input
|
||||
from langflow.inputs.inputs import InputTypes, instantiate_input
|
||||
from langflow.template.field.base import Input
|
||||
from langflow.utils.constants import DIRECT_TYPES
|
||||
|
||||
|
|
@ -48,7 +48,7 @@ class Template(BaseModel):
|
|||
input_type = value.pop("_input_type", None)
|
||||
if input_type:
|
||||
try:
|
||||
_input = _instantiate_input(input_type, value)
|
||||
_input = instantiate_input(input_type, value)
|
||||
except Exception as e:
|
||||
raise ValueError(f"Error instantiating input {input_type}: {e}")
|
||||
else:
|
||||
|
|
|
|||
|
|
@ -1,354 +1,362 @@
|
|||
{
|
||||
"src/backend/tests/test_endpoints.py::test_build_vertex_invalid_flow_id": 3.1494096249807626,
|
||||
"src/backend/tests/test_endpoints.py::test_build_vertex_invalid_vertex_id": 3.0606157919974066,
|
||||
"src/backend/tests/test_endpoints.py::test_get_all": 10.10167008501594,
|
||||
"src/backend/tests/test_endpoints.py::test_get_vertices": 4.5017141660209745,
|
||||
"src/backend/tests/test_endpoints.py::test_get_vertices_flow_not_found": 3.7886676250200253,
|
||||
"src/backend/tests/test_endpoints.py::test_invalid_flow_id": 4.073716707964195,
|
||||
"src/backend/tests/test_endpoints.py::test_invalid_prompt": 2.7002592499775346,
|
||||
"src/backend/tests/test_endpoints.py::test_invalid_run_with_input_type_chat": 2.987766916019609,
|
||||
"src/backend/tests/test_endpoints.py::test_post_validate_code": 3.0467621669813525,
|
||||
"src/backend/tests/test_endpoints.py::test_successful_run_with_input_type_any": 14.8548604179814,
|
||||
"src/backend/tests/test_endpoints.py::test_successful_run_with_input_type_chat": 6.242352208995726,
|
||||
"src/backend/tests/test_endpoints.py::test_successful_run_with_input_type_text": 5.7594154170074034,
|
||||
"src/backend/tests/test_endpoints.py::test_successful_run_with_output_type_any": 7.347130999987712,
|
||||
"src/backend/tests/test_endpoints.py::test_successful_run_with_output_type_debug": 6.291947416990297,
|
||||
"src/backend/tests/test_endpoints.py::test_successful_run_with_output_type_text": 14.872085083043203,
|
||||
"src/backend/tests/test_endpoints.py::test_valid_prompt": 2.7850471249839757,
|
||||
"src/backend/tests/test_endpoints.py::test_various_prompts[The weather is {weather} today.-expected_input_variables1]": 2.535564499994507,
|
||||
"src/backend/tests/test_endpoints.py::test_various_prompts[This prompt has no variables.-expected_input_variables2]": 9.15231529099401,
|
||||
"src/backend/tests/test_endpoints.py::test_various_prompts[{a}, {b}, and {c} are variables.-expected_input_variables3]": 2.640623040992068,
|
||||
"src/backend/tests/test_endpoints.py::test_various_prompts[{color} is my favorite color.-expected_input_variables0]": 2.079908042011084,
|
||||
"src/backend/tests/test_messages_endpoints.py::test_delete_messages": 2.515260499989381,
|
||||
"src/backend/tests/test_messages_endpoints.py::test_delete_messages_session": 2.3651068749895785,
|
||||
"src/backend/tests/test_messages_endpoints.py::test_update_message": 2.5627032090269495,
|
||||
"src/backend/tests/test_messages_endpoints.py::test_update_message_not_found": 3.504595792008331,
|
||||
"src/backend/tests/test_schema.py::TestInput::test_field_type_str": 0.0005162910092622042,
|
||||
"src/backend/tests/test_schema.py::TestInput::test_field_type_type": 0.0002682080084923655,
|
||||
"src/backend/tests/test_schema.py::TestInput::test_input_to_dict": 0.0003857500269077718,
|
||||
"src/backend/tests/test_schema.py::TestInput::test_invalid_field_type": 0.00031291699269786477,
|
||||
"src/backend/tests/test_schema.py::TestInput::test_post_process_type_function": 0.0005505419976543635,
|
||||
"src/backend/tests/test_schema.py::TestInput::test_serialize_field_type": 0.0002683750062715262,
|
||||
"src/backend/tests/test_schema.py::TestInput::test_validate_type_class": 0.0003414590028114617,
|
||||
"src/backend/tests/test_schema.py::TestInput::test_validate_type_string": 0.0002427089784760028,
|
||||
"src/backend/tests/test_schema.py::TestOutput::test_output_add_types": 0.000245749979512766,
|
||||
"src/backend/tests/test_schema.py::TestOutput::test_output_default": 0.00026183397858403623,
|
||||
"src/backend/tests/test_schema.py::TestOutput::test_output_set_selected": 0.0003107920056208968,
|
||||
"src/backend/tests/test_schema.py::TestOutput::test_output_to_dict": 0.0004964589898008853,
|
||||
"src/backend/tests/test_schema.py::TestOutput::test_output_validate_display_name": 0.0005334159650374204,
|
||||
"src/backend/tests/test_schema.py::TestOutput::test_output_validate_model": 0.00029370796983130276,
|
||||
"src/backend/tests/test_schema.py::TestPostProcessType::test_custom_type": 0.001362041017273441,
|
||||
"src/backend/tests/test_schema.py::TestPostProcessType::test_int_type": 0.00023837501066736877,
|
||||
"src/backend/tests/test_schema.py::TestPostProcessType::test_list_custom_type": 0.004543458024272695,
|
||||
"src/backend/tests/test_schema.py::TestPostProcessType::test_list_int_type": 0.0002362079976592213,
|
||||
"src/backend/tests/test_schema.py::TestPostProcessType::test_union_custom_type": 0.0005842499958816916,
|
||||
"src/backend/tests/test_schema.py::TestPostProcessType::test_union_type": 0.003973040962591767,
|
||||
"src/backend/tests/test_user.py::test_add_user": 3.298028166987933,
|
||||
"src/backend/tests/test_user.py::test_data_consistency_after_delete": 10.030325876054121,
|
||||
"src/backend/tests/test_user.py::test_data_consistency_after_update": 2.9754588740179315,
|
||||
"src/backend/tests/test_user.py::test_deactivated_user_cannot_access": 3.544328290998237,
|
||||
"src/backend/tests/test_user.py::test_deactivated_user_cannot_login": 3.9071091239748057,
|
||||
"src/backend/tests/test_user.py::test_delete_user": 4.161238500004401,
|
||||
"src/backend/tests/test_user.py::test_delete_user_wrong_id": 2.7632550839625765,
|
||||
"src/backend/tests/test_user.py::test_inactive_user": 3.334006417018827,
|
||||
"src/backend/tests/test_user.py::test_normal_user_cant_delete_user": 2.9729639159922954,
|
||||
"src/backend/tests/test_user.py::test_normal_user_cant_read_all_users": 2.6966073329967912,
|
||||
"src/backend/tests/test_user.py::test_patch_reset_password": 11.245606623997446,
|
||||
"src/backend/tests/test_user.py::test_patch_user": 3.2588992070232052,
|
||||
"src/backend/tests/test_user.py::test_patch_user_wrong_id": 3.3168086239602417,
|
||||
"src/backend/tests/test_user.py::test_read_all_users": 2.440687207999872,
|
||||
"src/backend/tests/test_user.py::test_user_waiting_for_approval": 9.475323291990208,
|
||||
"src/backend/tests/test_webhook.py::test_webhook_endpoint": 12.348436542029958,
|
||||
"src/backend/tests/test_webhook.py::test_webhook_flow_on_run_endpoint": 15.205204916041112,
|
||||
"src/backend/tests/test_webhook.py::test_webhook_with_random_payload": 8.713364291994367,
|
||||
"src/backend/tests/unit/components/prompts/test_prompt_component.py::TestPromptComponent::test_post_code_processing": 0.008164541970472783,
|
||||
"src/backend/tests/unit/custom/custom_component/test_component.py::test_set_invalid_output": 0.000454624998383224,
|
||||
"src/backend/tests/unit/graph/graph/test_base.py::test_graph": 0.007537708996096626,
|
||||
"src/backend/tests/unit/graph/graph/test_base.py::test_graph_functional": 0.020996668026782572,
|
||||
"src/backend/tests/unit/graph/graph/test_base.py::test_graph_functional_async_start": 0.009653333021560684,
|
||||
"src/backend/tests/unit/graph/graph/test_base.py::test_graph_functional_start": 0.008162209036527202,
|
||||
"src/backend/tests/unit/graph/graph/test_base.py::test_graph_functional_start_end": 0.06379004201153293,
|
||||
"src/backend/tests/unit/graph/graph/test_base.py::test_graph_not_prepared": 0.01988037399132736,
|
||||
"src/backend/tests/unit/graph/graph/test_runnable_vertices_manager.py::test_add_to_vertices_being_run": 2.476791499997489,
|
||||
"src/backend/tests/unit/graph/graph/test_runnable_vertices_manager.py::test_are_all_predecessors_fulfilled": 2.3258769580570515,
|
||||
"src/backend/tests/unit/graph/graph/test_runnable_vertices_manager.py::test_are_all_predecessors_fulfilled__wrong": 2.4165378749894444,
|
||||
"src/backend/tests/unit/graph/graph/test_runnable_vertices_manager.py::test_build_run_map": 2.5142138760129455,
|
||||
"src/backend/tests/unit/graph/graph/test_runnable_vertices_manager.py::test_from_dict": 2.629594833997544,
|
||||
"src/backend/tests/unit/graph/graph/test_runnable_vertices_manager.py::test_from_dict_without_run_map__bad_case": 8.874073583021527,
|
||||
"src/backend/tests/unit/graph/graph/test_runnable_vertices_manager.py::test_from_dict_without_run_predecessors__bad_case": 2.743527958955383,
|
||||
"src/backend/tests/unit/graph/graph/test_runnable_vertices_manager.py::test_from_dict_without_vertices_being_run__bad_case": 2.8369890000030864,
|
||||
"src/backend/tests/unit/graph/graph/test_runnable_vertices_manager.py::test_from_dict_without_vertices_to_run__bad_case": 2.9151457909611054,
|
||||
"src/backend/tests/unit/graph/graph/test_runnable_vertices_manager.py::test_is_vertex_runnable": 8.908991582982708,
|
||||
"src/backend/tests/unit/graph/graph/test_runnable_vertices_manager.py::test_is_vertex_runnable__wrong_is_active": 2.637443292012904,
|
||||
"src/backend/tests/unit/graph/graph/test_runnable_vertices_manager.py::test_is_vertex_runnable__wrong_run_predecessors": 2.747438082966255,
|
||||
"src/backend/tests/unit/graph/graph/test_runnable_vertices_manager.py::test_is_vertex_runnable__wrong_vertices_to_run": 2.8337462919880636,
|
||||
"src/backend/tests/unit/graph/graph/test_runnable_vertices_manager.py::test_pickle": 2.065233791974606,
|
||||
"src/backend/tests/unit/graph/graph/test_runnable_vertices_manager.py::test_remove_from_predecessors": 8.867784041009145,
|
||||
"src/backend/tests/unit/graph/graph/test_runnable_vertices_manager.py::test_remove_vertex_from_runnables": 2.2803797090018634,
|
||||
"src/backend/tests/unit/graph/graph/test_runnable_vertices_manager.py::test_to_dict": 9.405242958950112,
|
||||
"src/backend/tests/unit/graph/graph/test_runnable_vertices_manager.py::test_update_run_state": 2.4422846660017967,
|
||||
"src/backend/tests/unit/graph/graph/test_runnable_vertices_manager.py::test_update_vertex_run_state": 2.9607737089972943,
|
||||
"src/backend/tests/unit/graph/graph/test_runnable_vertices_manager.py::test_update_vertex_run_state__bad_case": 2.485696541989455,
|
||||
"src/backend/tests/unit/graph/graph/test_utils.py::test_get_successors_a": 8.826332042983267,
|
||||
"src/backend/tests/unit/graph/graph/test_utils.py::test_get_successors_z": 2.949440208991291,
|
||||
"src/backend/tests/unit/graph/graph/test_utils.py::test_sort_up_to_vertex_a": 2.8428027920017485,
|
||||
"src/backend/tests/unit/graph/graph/test_utils.py::test_sort_up_to_vertex_g": 3.315444208041299,
|
||||
"src/backend/tests/unit/graph/graph/test_utils.py::test_sort_up_to_vertex_h": 2.983557416999247,
|
||||
"src/backend/tests/unit/graph/graph/test_utils.py::test_sort_up_to_vertex_invalid_vertex": 1.9296646670263726,
|
||||
"src/backend/tests/unit/graph/graph/test_utils.py::test_sort_up_to_vertex_m": 8.736605707992567,
|
||||
"src/backend/tests/unit/graph/graph/test_utils.py::test_sort_up_to_vertex_n_is_start": 2.5265350410190877,
|
||||
"src/backend/tests/unit/graph/graph/test_utils.py::test_sort_up_to_vertex_t": 2.3543146679585334,
|
||||
"src/backend/tests/unit/graph/graph/test_utils.py::test_sort_up_to_vertex_x": 2.094447916984791,
|
||||
"src/backend/tests/unit/graph/graph/test_utils.py::test_sort_up_to_vertex_z": 2.7899541249789763,
|
||||
"src/backend/tests/unit/graph/test_graph.py::test_build_edges": 2.053889958973741,
|
||||
"src/backend/tests/unit/graph/test_graph.py::test_build_nodes": 3.264545250014635,
|
||||
"src/backend/tests/unit/graph/test_graph.py::test_build_params": 1.6351483759935945,
|
||||
"src/backend/tests/unit/graph/test_graph.py::test_circular_dependencies": 4.829830207978375,
|
||||
"src/backend/tests/unit/graph/test_graph.py::test_find_last_node": 1.8075883749988861,
|
||||
"src/backend/tests/unit/graph/test_graph.py::test_get_node": 2.2939607900043484,
|
||||
"src/backend/tests/unit/graph/test_graph.py::test_get_node_neighbors_basic": 2.5666640420095064,
|
||||
"src/backend/tests/unit/graph/test_graph.py::test_get_root_vertex": 2.33814408298349,
|
||||
"src/backend/tests/unit/graph/test_graph.py::test_get_vertices_with_target": 2.0869384160032496,
|
||||
"src/backend/tests/unit/graph/test_graph.py::test_graph_structure": 3.1825925829762127,
|
||||
"src/backend/tests/unit/graph/test_graph.py::test_invalid_node_types": 2.1994956269918475,
|
||||
"src/backend/tests/unit/graph/test_graph.py::test_matched_type": 2.3932184999866877,
|
||||
"src/backend/tests/unit/graph/test_graph.py::test_pickle_graph": 2.184392209019279,
|
||||
"src/backend/tests/unit/graph/test_graph.py::test_process_flow": 2.1272420000168495,
|
||||
"src/backend/tests/unit/graph/test_graph.py::test_process_flow_one_group": 1.9646992909838445,
|
||||
"src/backend/tests/unit/graph/test_graph.py::test_process_flow_vector_store_grouped": 2.415951082977699,
|
||||
"src/backend/tests/unit/graph/test_graph.py::test_set_new_target_handle": 1.7951639160164632,
|
||||
"src/backend/tests/unit/graph/test_graph.py::test_ungroup_node": 2.0279515830043238,
|
||||
"src/backend/tests/unit/graph/test_graph.py::test_update_source_handle": 2.0684266670432407,
|
||||
"src/backend/tests/unit/graph/test_graph.py::test_update_target_handle_proxy": 1.5892521249479614,
|
||||
"src/backend/tests/unit/graph/test_graph.py::test_update_template": 1.7316221670189407,
|
||||
"src/backend/tests/unit/graph/test_graph.py::test_validate_edges": 1.920275832992047,
|
||||
"src/backend/tests/unit/initial_setup/starter_projects/test_memory_chatbot.py::test_memory_chatbot": 2.1822710419946816,
|
||||
"src/backend/tests/unit/initial_setup/starter_projects/test_memory_chatbot.py::test_memory_chatbot_dump_components_and_edges": 1.6609269159962423,
|
||||
"src/backend/tests/unit/initial_setup/starter_projects/test_memory_chatbot.py::test_memory_chatbot_dump_structure": 2.5239112499984913,
|
||||
"src/backend/tests/unit/initial_setup/starter_projects/test_vector_store_rag.py::test_vector_store_rag": 0.08740387603756972,
|
||||
"src/backend/tests/unit/initial_setup/starter_projects/test_vector_store_rag.py::test_vector_store_rag_dump": 0.027446749998489395,
|
||||
"src/backend/tests/unit/initial_setup/starter_projects/test_vector_store_rag.py::test_vector_store_rag_dump_components_and_edges": 0.026998917979653925,
|
||||
"src/backend/tests/unit/inputs/test_inputs.py::test_bool_input_invalid": 0.0006447900377679616,
|
||||
"src/backend/tests/unit/inputs/test_inputs.py::test_bool_input_valid": 0.00023025000700727105,
|
||||
"src/backend/tests/unit/inputs/test_inputs.py::test_data_input_valid": 0.0005409169825725257,
|
||||
"src/backend/tests/unit/inputs/test_inputs.py::test_dict_input_invalid": 0.00025333400117233396,
|
||||
"src/backend/tests/unit/inputs/test_inputs.py::test_dict_input_valid": 0.0007362900068983436,
|
||||
"src/backend/tests/unit/inputs/test_inputs.py::test_dropdown_input_invalid": 0.0009356669906992465,
|
||||
"src/backend/tests/unit/inputs/test_inputs.py::test_dropdown_input_valid": 0.0004829160461667925,
|
||||
"src/backend/tests/unit/inputs/test_inputs.py::test_file_input_valid": 0.00024799996754154563,
|
||||
"src/backend/tests/unit/inputs/test_inputs.py::test_float_input_invalid": 0.00025445802020840347,
|
||||
"src/backend/tests/unit/inputs/test_inputs.py::test_float_input_valid": 0.00024087497149594128,
|
||||
"src/backend/tests/unit/inputs/test_inputs.py::test_handle_input_invalid": 0.0003797499812208116,
|
||||
"src/backend/tests/unit/inputs/test_inputs.py::test_handle_input_valid": 0.0002122489968314767,
|
||||
"src/backend/tests/unit/inputs/test_inputs.py::test_instantiate_input_comprehensive": 0.001500750018749386,
|
||||
"src/backend/tests/unit/inputs/test_inputs.py::test_instantiate_input_invalid": 0.00027112496900372207,
|
||||
"src/backend/tests/unit/inputs/test_inputs.py::test_instantiate_input_valid": 0.0005940830160398036,
|
||||
"src/backend/tests/unit/inputs/test_inputs.py::test_int_input_invalid": 0.00029999902471899986,
|
||||
"src/backend/tests/unit/inputs/test_inputs.py::test_int_input_valid": 0.0004179589741397649,
|
||||
"src/backend/tests/unit/inputs/test_inputs.py::test_message_text_input_invalid": 0.0004274170205462724,
|
||||
"src/backend/tests/unit/inputs/test_inputs.py::test_message_text_input_valid": 0.0003730839816853404,
|
||||
"src/backend/tests/unit/inputs/test_inputs.py::test_multiline_input_invalid": 0.00033208398963324726,
|
||||
"src/backend/tests/unit/inputs/test_inputs.py::test_multiline_input_valid": 0.0003288750012870878,
|
||||
"src/backend/tests/unit/inputs/test_inputs.py::test_multiline_secret_input_invalid": 0.00023066697758622468,
|
||||
"src/backend/tests/unit/inputs/test_inputs.py::test_multiline_secret_input_valid": 0.00022683301358483732,
|
||||
"src/backend/tests/unit/inputs/test_inputs.py::test_multiselect_input_invalid": 0.0002583339810371399,
|
||||
"src/backend/tests/unit/inputs/test_inputs.py::test_multiselect_input_valid": 0.00027691599098034203,
|
||||
"src/backend/tests/unit/inputs/test_inputs.py::test_nested_dict_input_invalid": 0.00041799998143687844,
|
||||
"src/backend/tests/unit/inputs/test_inputs.py::test_nested_dict_input_valid": 0.004873417055932805,
|
||||
"src/backend/tests/unit/inputs/test_inputs.py::test_prompt_input_valid": 0.0007432089769281447,
|
||||
"src/backend/tests/unit/inputs/test_inputs.py::test_secret_str_input_invalid": 0.00033837597584351897,
|
||||
"src/backend/tests/unit/inputs/test_inputs.py::test_secret_str_input_valid": 0.00022083398653194308,
|
||||
"src/backend/tests/unit/inputs/test_inputs.py::test_str_input_invalid": 0.0004425400111358613,
|
||||
"src/backend/tests/unit/inputs/test_inputs.py::test_str_input_valid": 0.0003231659939046949,
|
||||
"src/backend/tests/unit/inputs/test_inputs.py::test_table_input_invalid": 0.010438332974445075,
|
||||
"src/backend/tests/unit/inputs/test_inputs.py::test_table_input_valid": 0.0003158329927828163,
|
||||
"src/backend/tests/unit/schema/test_schema_message.py::test_message_async_prompt_serialization": 0.4811764149926603,
|
||||
"src/backend/tests/unit/schema/test_schema_message.py::test_message_prompt_serialization": 0.0009208739793393761,
|
||||
"src/backend/tests/unit/test_api_key.py::test_create_api_key": 2.661131207976723,
|
||||
"src/backend/tests/unit/test_api_key.py::test_delete_api_key": 2.671240749012213,
|
||||
"src/backend/tests/unit/test_api_key.py::test_get_api_keys": 2.5765499170229305,
|
||||
"src/backend/tests/unit/test_cache.py::test_build_graph": 3.0347800820018165,
|
||||
"src/backend/tests/unit/test_chat_endpoint.py::test_build_flow": 8.144330751005327,
|
||||
"src/backend/tests/unit/test_chat_endpoint.py::test_build_flow_from_request_data": 5.783452290983405,
|
||||
"src/backend/tests/unit/test_chat_endpoint.py::test_build_flow_with_frozen_path": 7.61259591698763,
|
||||
"src/backend/tests/unit/test_cli.py::test_components_path": 2.2392006250447594,
|
||||
"src/backend/tests/unit/test_cli.py::test_superuser": 2.476592207007343,
|
||||
"src/backend/tests/unit/test_custom_component.py::test_build_config_field_keys": 2.0540905419911724,
|
||||
"src/backend/tests/unit/test_custom_component.py::test_build_config_field_value_keys": 1.9443145420227665,
|
||||
"src/backend/tests/unit/test_custom_component.py::test_build_config_field_values_dict": 3.319497832970228,
|
||||
"src/backend/tests/unit/test_custom_component.py::test_build_config_fields_dict": 1.8987905430258252,
|
||||
"src/backend/tests/unit/test_custom_component.py::test_build_config_has_fields": 2.7343585419876035,
|
||||
"src/backend/tests/unit/test_custom_component.py::test_build_config_no_code": 1.792709333007224,
|
||||
"src/backend/tests/unit/test_custom_component.py::test_build_config_return_type": 2.3822355829761364,
|
||||
"src/backend/tests/unit/test_custom_component.py::test_code_parser_get_tree": 1.952277623990085,
|
||||
"src/backend/tests/unit/test_custom_component.py::test_code_parser_init": 2.0454807080095634,
|
||||
"src/backend/tests/unit/test_custom_component.py::test_code_parser_parse_ann_assign": 2.451507583988132,
|
||||
"src/backend/tests/unit/test_custom_component.py::test_code_parser_parse_arg_no_annotation": 2.353039957990404,
|
||||
"src/backend/tests/unit/test_custom_component.py::test_code_parser_parse_arg_with_annotation": 1.7640878760430496,
|
||||
"src/backend/tests/unit/test_custom_component.py::test_code_parser_parse_assign": 2.0938420000020415,
|
||||
"src/backend/tests/unit/test_custom_component.py::test_code_parser_parse_callable_details_no_args": 1.7373172499937937,
|
||||
"src/backend/tests/unit/test_custom_component.py::test_code_parser_parse_classes": 1.7848410429724026,
|
||||
"src/backend/tests/unit/test_custom_component.py::test_code_parser_parse_function_def_init": 2.2325071259983815,
|
||||
"src/backend/tests/unit/test_custom_component.py::test_code_parser_parse_function_def_not_init": 2.4196665409835987,
|
||||
"src/backend/tests/unit/test_custom_component.py::test_code_parser_parse_functions": 2.178845665999688,
|
||||
"src/backend/tests/unit/test_custom_component.py::test_code_parser_parse_global_vars": 2.4417894990183413,
|
||||
"src/backend/tests/unit/test_custom_component.py::test_code_parser_parse_imports_import": 1.707990164984949,
|
||||
"src/backend/tests/unit/test_custom_component.py::test_code_parser_parse_imports_importfrom": 2.1835803739959374,
|
||||
"src/backend/tests/unit/test_custom_component.py::test_code_parser_syntax_error": 2.277529457001947,
|
||||
"src/backend/tests/unit/test_custom_component.py::test_component_code_null_error": 1.9170069170068018,
|
||||
"src/backend/tests/unit/test_custom_component.py::test_component_get_code_tree": 1.8569252080051228,
|
||||
"src/backend/tests/unit/test_custom_component.py::test_component_get_code_tree_syntax_error": 2.174606874003075,
|
||||
"src/backend/tests/unit/test_custom_component.py::test_component_get_function_valid": 1.9588903749827296,
|
||||
"src/backend/tests/unit/test_custom_component.py::test_component_init": 2.5707569160149433,
|
||||
"src/backend/tests/unit/test_custom_component.py::test_custom_component_build_not_implemented": 2.3832541239680722,
|
||||
"src/backend/tests/unit/test_custom_component.py::test_custom_component_build_template_config": 1.767908540990902,
|
||||
"src/backend/tests/unit/test_custom_component.py::test_custom_component_class_template_validation_no_code": 1.9784962920530234,
|
||||
"src/backend/tests/unit/test_custom_component.py::test_custom_component_get_code_tree_syntax_error": 2.0324612080003135,
|
||||
"src/backend/tests/unit/test_custom_component.py::test_custom_component_get_function": 1.6494328340049833,
|
||||
"src/backend/tests/unit/test_custom_component.py::test_custom_component_get_function_entrypoint_args": 1.9188839579874184,
|
||||
"src/backend/tests/unit/test_custom_component.py::test_custom_component_get_function_entrypoint_args_no_args": 2.0736736260005273,
|
||||
"src/backend/tests/unit/test_custom_component.py::test_custom_component_get_function_entrypoint_return_type": 2.199567042000126,
|
||||
"src/backend/tests/unit/test_custom_component.py::test_custom_component_get_function_entrypoint_return_type_no_return_type": 1.7597685409709811,
|
||||
"src/backend/tests/unit/test_custom_component.py::test_custom_component_get_function_valid": 2.1681128749914933,
|
||||
"src/backend/tests/unit/test_custom_component.py::test_custom_component_get_main_class_name": 1.658911792008439,
|
||||
"src/backend/tests/unit/test_custom_component.py::test_custom_component_get_main_class_name_no_main_class": 1.4603167499881238,
|
||||
"src/backend/tests/unit/test_custom_component.py::test_custom_component_init": 2.329375083994819,
|
||||
"src/backend/tests/unit/test_custom_component.py::test_custom_component_multiple_outputs": 1.8187729580095038,
|
||||
"src/backend/tests/test_endpoints.py::test_build_vertex_invalid_flow_id": 1.8161861660000795,
|
||||
"src/backend/tests/test_endpoints.py::test_build_vertex_invalid_vertex_id": 1.6184064170001875,
|
||||
"src/backend/tests/test_endpoints.py::test_get_all": 3.8724166670003797,
|
||||
"src/backend/tests/test_endpoints.py::test_get_vertices": 2.3527110839995657,
|
||||
"src/backend/tests/test_endpoints.py::test_get_vertices_flow_not_found": 1.781084457999441,
|
||||
"src/backend/tests/test_endpoints.py::test_invalid_flow_id": 1.8902806239998426,
|
||||
"src/backend/tests/test_endpoints.py::test_invalid_prompt": 1.104316251000455,
|
||||
"src/backend/tests/test_endpoints.py::test_invalid_run_with_input_type_chat": 1.7665630830001646,
|
||||
"src/backend/tests/test_endpoints.py::test_post_validate_code": 1.2675197489998027,
|
||||
"src/backend/tests/test_endpoints.py::test_successful_run_with_input_type_any": 4.90430141699926,
|
||||
"src/backend/tests/test_endpoints.py::test_successful_run_with_input_type_chat": 5.548072499999762,
|
||||
"src/backend/tests/test_endpoints.py::test_successful_run_with_input_type_text": 6.992585209000026,
|
||||
"src/backend/tests/test_endpoints.py::test_successful_run_with_output_type_any": 6.90225587499981,
|
||||
"src/backend/tests/test_endpoints.py::test_successful_run_with_output_type_debug": 6.666685292999773,
|
||||
"src/backend/tests/test_endpoints.py::test_successful_run_with_output_type_text": 6.525266874999943,
|
||||
"src/backend/tests/test_endpoints.py::test_valid_prompt": 1.0876984590004213,
|
||||
"src/backend/tests/test_endpoints.py::test_various_prompts[The weather is {weather} today.-expected_input_variables1]": 1.0912359599997217,
|
||||
"src/backend/tests/test_endpoints.py::test_various_prompts[This prompt has no variables.-expected_input_variables2]": 1.0882312500002627,
|
||||
"src/backend/tests/test_endpoints.py::test_various_prompts[{a}, {b}, and {c} are variables.-expected_input_variables3]": 1.1277481249994707,
|
||||
"src/backend/tests/test_endpoints.py::test_various_prompts[{color} is my favorite color.-expected_input_variables0]": 1.2742332080001688,
|
||||
"src/backend/tests/test_messages_endpoints.py::test_delete_messages": 1.5091020420009045,
|
||||
"src/backend/tests/test_messages_endpoints.py::test_delete_messages_session": 1.510577208000086,
|
||||
"src/backend/tests/test_messages_endpoints.py::test_update_message": 1.5425646240005335,
|
||||
"src/backend/tests/test_messages_endpoints.py::test_update_message_not_found": 1.5310995830000138,
|
||||
"src/backend/tests/test_schema.py::TestInput::test_field_type_str": 0.00023554100016554003,
|
||||
"src/backend/tests/test_schema.py::TestInput::test_field_type_type": 0.00021875100037505035,
|
||||
"src/backend/tests/test_schema.py::TestInput::test_input_to_dict": 0.00020670800040534232,
|
||||
"src/backend/tests/test_schema.py::TestInput::test_invalid_field_type": 0.00023608299989064108,
|
||||
"src/backend/tests/test_schema.py::TestInput::test_post_process_type_function": 0.00020749999976032996,
|
||||
"src/backend/tests/test_schema.py::TestInput::test_serialize_field_type": 0.0001787500000318687,
|
||||
"src/backend/tests/test_schema.py::TestInput::test_validate_type_class": 0.00018495699941922794,
|
||||
"src/backend/tests/test_schema.py::TestInput::test_validate_type_string": 0.00019104300008621067,
|
||||
"src/backend/tests/test_schema.py::TestOutput::test_output_add_types": 0.00017562499988343916,
|
||||
"src/backend/tests/test_schema.py::TestOutput::test_output_default": 0.00018087499984176247,
|
||||
"src/backend/tests/test_schema.py::TestOutput::test_output_set_selected": 0.00019041600035052397,
|
||||
"src/backend/tests/test_schema.py::TestOutput::test_output_to_dict": 0.00018754199982140562,
|
||||
"src/backend/tests/test_schema.py::TestOutput::test_output_validate_display_name": 0.00018495800031814724,
|
||||
"src/backend/tests/test_schema.py::TestOutput::test_output_validate_model": 0.00020916699941153638,
|
||||
"src/backend/tests/test_schema.py::TestPostProcessType::test_custom_type": 0.00018125099950339063,
|
||||
"src/backend/tests/test_schema.py::TestPostProcessType::test_int_type": 0.0001939999992828234,
|
||||
"src/backend/tests/test_schema.py::TestPostProcessType::test_list_custom_type": 0.00017420900030629127,
|
||||
"src/backend/tests/test_schema.py::TestPostProcessType::test_list_int_type": 0.00018208300025435165,
|
||||
"src/backend/tests/test_schema.py::TestPostProcessType::test_union_custom_type": 0.00019349999956830288,
|
||||
"src/backend/tests/test_schema.py::TestPostProcessType::test_union_type": 0.00017558299941811129,
|
||||
"src/backend/tests/test_user.py::test_add_user": 1.7881504160000077,
|
||||
"src/backend/tests/test_user.py::test_data_consistency_after_delete": 1.5578057500001705,
|
||||
"src/backend/tests/test_user.py::test_data_consistency_after_update": 1.7415219580002486,
|
||||
"src/backend/tests/test_user.py::test_deactivated_user_cannot_access": 1.7204212500000722,
|
||||
"src/backend/tests/test_user.py::test_deactivated_user_cannot_login": 1.3222801250003613,
|
||||
"src/backend/tests/test_user.py::test_delete_user": 1.5755463759996928,
|
||||
"src/backend/tests/test_user.py::test_delete_user_wrong_id": 2.0808037919996423,
|
||||
"src/backend/tests/test_user.py::test_inactive_user": 1.3267317489999186,
|
||||
"src/backend/tests/test_user.py::test_normal_user_cant_delete_user": 1.7230364579995694,
|
||||
"src/backend/tests/test_user.py::test_normal_user_cant_read_all_users": 1.5408454590001384,
|
||||
"src/backend/tests/test_user.py::test_patch_reset_password": 2.134319875000074,
|
||||
"src/backend/tests/test_user.py::test_patch_user": 1.5280406670003686,
|
||||
"src/backend/tests/test_user.py::test_patch_user_wrong_id": 1.5431871670002693,
|
||||
"src/backend/tests/test_user.py::test_read_all_users": 1.3631829999994807,
|
||||
"src/backend/tests/test_user.py::test_user_waiting_for_approval": 1.7217974579998554,
|
||||
"src/backend/tests/test_webhook.py::test_webhook_endpoint": 8.848518459000388,
|
||||
"src/backend/tests/test_webhook.py::test_webhook_flow_on_run_endpoint": 4.675444458000584,
|
||||
"src/backend/tests/test_webhook.py::test_webhook_with_random_payload": 5.161753501000476,
|
||||
"src/backend/tests/unit/api/test_api_utils.py::test_get_outdated_components": 1.1425726240004224,
|
||||
"src/backend/tests/unit/api/test_api_utils.py::test_get_suggestion_message": 1.7624517080002988,
|
||||
"src/backend/tests/unit/components/prompts/test_prompt_component.py::TestPromptComponent::test_post_code_processing": 0.0013335419994291442,
|
||||
"src/backend/tests/unit/custom/custom_component/test_component.py::test_set_invalid_output": 0.00042366600018795,
|
||||
"src/backend/tests/unit/exceptions/test_api.py::test_api_exception": 1.1389405410004656,
|
||||
"src/backend/tests/unit/exceptions/test_api.py::test_api_exception_no_flow": 1.152361500999632,
|
||||
"src/backend/tests/unit/graph/graph/test_base.py::test_graph": 0.010227958999621478,
|
||||
"src/backend/tests/unit/graph/graph/test_base.py::test_graph_functional": 0.010483666000254743,
|
||||
"src/backend/tests/unit/graph/graph/test_base.py::test_graph_functional_async_start": 0.011119625999981508,
|
||||
"src/backend/tests/unit/graph/graph/test_base.py::test_graph_functional_start": 0.011757042999761325,
|
||||
"src/backend/tests/unit/graph/graph/test_base.py::test_graph_functional_start_end": 0.023863916999744106,
|
||||
"src/backend/tests/unit/graph/graph/test_base.py::test_graph_not_prepared": 0.017605375000130152,
|
||||
"src/backend/tests/unit/graph/graph/test_base.py::test_graph_with_edge": 0.011328083999615046,
|
||||
"src/backend/tests/unit/graph/graph/test_runnable_vertices_manager.py::test_add_to_vertices_being_run": 1.1834923340002206,
|
||||
"src/backend/tests/unit/graph/graph/test_runnable_vertices_manager.py::test_are_all_predecessors_fulfilled": 1.1408760409995011,
|
||||
"src/backend/tests/unit/graph/graph/test_runnable_vertices_manager.py::test_are_all_predecessors_fulfilled__wrong": 1.9469006670001363,
|
||||
"src/backend/tests/unit/graph/graph/test_runnable_vertices_manager.py::test_build_run_map": 1.1431461249999302,
|
||||
"src/backend/tests/unit/graph/graph/test_runnable_vertices_manager.py::test_from_dict": 1.1375733340000806,
|
||||
"src/backend/tests/unit/graph/graph/test_runnable_vertices_manager.py::test_from_dict_without_run_map__bad_case": 1.1561181250003756,
|
||||
"src/backend/tests/unit/graph/graph/test_runnable_vertices_manager.py::test_from_dict_without_run_predecessors__bad_case": 1.1398941239999658,
|
||||
"src/backend/tests/unit/graph/graph/test_runnable_vertices_manager.py::test_from_dict_without_vertices_being_run__bad_case": 1.1692108339998413,
|
||||
"src/backend/tests/unit/graph/graph/test_runnable_vertices_manager.py::test_from_dict_without_vertices_to_run__bad_case": 1.8318268329999228,
|
||||
"src/backend/tests/unit/graph/graph/test_runnable_vertices_manager.py::test_is_vertex_runnable": 1.1589285000000018,
|
||||
"src/backend/tests/unit/graph/graph/test_runnable_vertices_manager.py::test_is_vertex_runnable__wrong_is_active": 1.1601161660000798,
|
||||
"src/backend/tests/unit/graph/graph/test_runnable_vertices_manager.py::test_is_vertex_runnable__wrong_run_predecessors": 1.1846444589996281,
|
||||
"src/backend/tests/unit/graph/graph/test_runnable_vertices_manager.py::test_is_vertex_runnable__wrong_vertices_to_run": 1.156324541000231,
|
||||
"src/backend/tests/unit/graph/graph/test_runnable_vertices_manager.py::test_pickle": 1.1490497489999143,
|
||||
"src/backend/tests/unit/graph/graph/test_runnable_vertices_manager.py::test_remove_from_predecessors": 1.17061966700021,
|
||||
"src/backend/tests/unit/graph/graph/test_runnable_vertices_manager.py::test_remove_vertex_from_runnables": 1.1513506659998711,
|
||||
"src/backend/tests/unit/graph/graph/test_runnable_vertices_manager.py::test_to_dict": 1.0720182910004041,
|
||||
"src/backend/tests/unit/graph/graph/test_runnable_vertices_manager.py::test_update_run_state": 1.152722833000098,
|
||||
"src/backend/tests/unit/graph/graph/test_runnable_vertices_manager.py::test_update_vertex_run_state": 1.1509739160001118,
|
||||
"src/backend/tests/unit/graph/graph/test_runnable_vertices_manager.py::test_update_vertex_run_state__bad_case": 1.1737124579994997,
|
||||
"src/backend/tests/unit/graph/graph/test_utils.py::test_get_successors_a": 1.1541486669998449,
|
||||
"src/backend/tests/unit/graph/graph/test_utils.py::test_get_successors_z": 1.152469375999317,
|
||||
"src/backend/tests/unit/graph/graph/test_utils.py::test_sort_up_to_vertex_a": 1.2232545840001876,
|
||||
"src/backend/tests/unit/graph/graph/test_utils.py::test_sort_up_to_vertex_g": 1.2133457499999167,
|
||||
"src/backend/tests/unit/graph/graph/test_utils.py::test_sort_up_to_vertex_h": 1.206607958999939,
|
||||
"src/backend/tests/unit/graph/graph/test_utils.py::test_sort_up_to_vertex_invalid_vertex": 1.2181356250002864,
|
||||
"src/backend/tests/unit/graph/graph/test_utils.py::test_sort_up_to_vertex_m": 1.2004494170000726,
|
||||
"src/backend/tests/unit/graph/graph/test_utils.py::test_sort_up_to_vertex_n_is_start": 1.1721724999997605,
|
||||
"src/backend/tests/unit/graph/graph/test_utils.py::test_sort_up_to_vertex_t": 1.233656458999576,
|
||||
"src/backend/tests/unit/graph/graph/test_utils.py::test_sort_up_to_vertex_x": 2.1063177910000377,
|
||||
"src/backend/tests/unit/graph/graph/test_utils.py::test_sort_up_to_vertex_z": 1.1587511679999807,
|
||||
"src/backend/tests/unit/graph/test_graph.py::test_build_edges": 1.2613786659999278,
|
||||
"src/backend/tests/unit/graph/test_graph.py::test_build_nodes": 1.236596333000307,
|
||||
"src/backend/tests/unit/graph/test_graph.py::test_build_params": 1.1992265409999163,
|
||||
"src/backend/tests/unit/graph/test_graph.py::test_circular_dependencies": 1.2119703740004297,
|
||||
"src/backend/tests/unit/graph/test_graph.py::test_find_last_node": 1.1726129999997283,
|
||||
"src/backend/tests/unit/graph/test_graph.py::test_get_node": 1.2559688749997804,
|
||||
"src/backend/tests/unit/graph/test_graph.py::test_get_node_neighbors_basic": 2.205406665999817,
|
||||
"src/backend/tests/unit/graph/test_graph.py::test_get_root_vertex": 1.2303205419998449,
|
||||
"src/backend/tests/unit/graph/test_graph.py::test_get_vertices_with_target": 1.2130661250002959,
|
||||
"src/backend/tests/unit/graph/test_graph.py::test_graph_structure": 1.226738209999894,
|
||||
"src/backend/tests/unit/graph/test_graph.py::test_invalid_node_types": 1.218165749000491,
|
||||
"src/backend/tests/unit/graph/test_graph.py::test_matched_type": 1.2096231260002241,
|
||||
"src/backend/tests/unit/graph/test_graph.py::test_pickle_graph": 1.1924404169999434,
|
||||
"src/backend/tests/unit/graph/test_graph.py::test_process_flow": 1.198885958000119,
|
||||
"src/backend/tests/unit/graph/test_graph.py::test_process_flow_one_group": 1.1860583339998811,
|
||||
"src/backend/tests/unit/graph/test_graph.py::test_process_flow_vector_store_grouped": 1.1757077080001181,
|
||||
"src/backend/tests/unit/graph/test_graph.py::test_set_new_target_handle": 1.2467699590001757,
|
||||
"src/backend/tests/unit/graph/test_graph.py::test_ungroup_node": 1.200591749999603,
|
||||
"src/backend/tests/unit/graph/test_graph.py::test_update_source_handle": 1.2464087500002279,
|
||||
"src/backend/tests/unit/graph/test_graph.py::test_update_target_handle_proxy": 1.2738795420000315,
|
||||
"src/backend/tests/unit/graph/test_graph.py::test_update_template": 2.3875174170002538,
|
||||
"src/backend/tests/unit/graph/test_graph.py::test_validate_edges": 1.2202941670002474,
|
||||
"src/backend/tests/unit/initial_setup/starter_projects/test_memory_chatbot.py::test_memory_chatbot": 1.2400888339998346,
|
||||
"src/backend/tests/unit/initial_setup/starter_projects/test_memory_chatbot.py::test_memory_chatbot_dump_components_and_edges": 1.2050360830003228,
|
||||
"src/backend/tests/unit/initial_setup/starter_projects/test_memory_chatbot.py::test_memory_chatbot_dump_structure": 1.226008957999511,
|
||||
"src/backend/tests/unit/initial_setup/starter_projects/test_vector_store_rag.py::test_vector_store_rag": 0.07454762600036702,
|
||||
"src/backend/tests/unit/initial_setup/starter_projects/test_vector_store_rag.py::test_vector_store_rag_add": 0.06540679199997612,
|
||||
"src/backend/tests/unit/initial_setup/starter_projects/test_vector_store_rag.py::test_vector_store_rag_dump": 0.03427487499993731,
|
||||
"src/backend/tests/unit/initial_setup/starter_projects/test_vector_store_rag.py::test_vector_store_rag_dump_components_and_edges": 0.03775970900005632,
|
||||
"src/backend/tests/unit/inputs/test_inputs.py::test_bool_input_invalid": 0.0001977499996428378,
|
||||
"src/backend/tests/unit/inputs/test_inputs.py::test_bool_input_valid": 0.0003290839995315764,
|
||||
"src/backend/tests/unit/inputs/test_inputs.py::test_data_input_valid": 0.0005500840002241603,
|
||||
"src/backend/tests/unit/inputs/test_inputs.py::test_dict_input_invalid": 0.00021833400023751892,
|
||||
"src/backend/tests/unit/inputs/test_inputs.py::test_dict_input_valid": 0.0002739589999691816,
|
||||
"src/backend/tests/unit/inputs/test_inputs.py::test_dropdown_input_invalid": 0.00028154100027677487,
|
||||
"src/backend/tests/unit/inputs/test_inputs.py::test_dropdown_input_valid": 0.00018683299958865973,
|
||||
"src/backend/tests/unit/inputs/test_inputs.py::test_file_input_valid": 0.0005212080000092101,
|
||||
"src/backend/tests/unit/inputs/test_inputs.py::test_float_input_invalid": 0.00016741600029490655,
|
||||
"src/backend/tests/unit/inputs/test_inputs.py::test_float_input_valid": 0.0001750840001477627,
|
||||
"src/backend/tests/unit/inputs/test_inputs.py::test_handle_input_invalid": 0.00030137500016280683,
|
||||
"src/backend/tests/unit/inputs/test_inputs.py::test_handle_input_valid": 0.00028079100002287305,
|
||||
"src/backend/tests/unit/inputs/test_inputs.py::test_instantiate_input_comprehensive": 0.00022679100038658362,
|
||||
"src/backend/tests/unit/inputs/test_inputs.py::test_instantiate_input_invalid": 0.0002707490002649138,
|
||||
"src/backend/tests/unit/inputs/test_inputs.py::test_instantiate_input_valid": 0.000520291999237088,
|
||||
"src/backend/tests/unit/inputs/test_inputs.py::test_int_input_invalid": 0.000933000999793876,
|
||||
"src/backend/tests/unit/inputs/test_inputs.py::test_int_input_valid": 0.00018916599947260693,
|
||||
"src/backend/tests/unit/inputs/test_inputs.py::test_message_text_input_invalid": 0.0002494579998710833,
|
||||
"src/backend/tests/unit/inputs/test_inputs.py::test_message_text_input_valid": 0.00048650000053385156,
|
||||
"src/backend/tests/unit/inputs/test_inputs.py::test_multiline_input_invalid": 0.0018433750001349836,
|
||||
"src/backend/tests/unit/inputs/test_inputs.py::test_multiline_input_valid": 0.0006555419995493139,
|
||||
"src/backend/tests/unit/inputs/test_inputs.py::test_multiline_secret_input_invalid": 0.0003428750001148728,
|
||||
"src/backend/tests/unit/inputs/test_inputs.py::test_multiline_secret_input_valid": 0.001843831999849499,
|
||||
"src/backend/tests/unit/inputs/test_inputs.py::test_multiselect_input_invalid": 0.00019454099992799456,
|
||||
"src/backend/tests/unit/inputs/test_inputs.py::test_multiselect_input_valid": 0.0003385830000297574,
|
||||
"src/backend/tests/unit/inputs/test_inputs.py::test_nested_dict_input_invalid": 0.00046958300026744837,
|
||||
"src/backend/tests/unit/inputs/test_inputs.py::test_nested_dict_input_valid": 0.0007980010000210314,
|
||||
"src/backend/tests/unit/inputs/test_inputs.py::test_prompt_input_valid": 0.0006562079997820547,
|
||||
"src/backend/tests/unit/inputs/test_inputs.py::test_secret_str_input_invalid": 0.00018541600002208725,
|
||||
"src/backend/tests/unit/inputs/test_inputs.py::test_secret_str_input_valid": 0.00017520799929116038,
|
||||
"src/backend/tests/unit/inputs/test_inputs.py::test_str_input_invalid": 0.00023595900029249606,
|
||||
"src/backend/tests/unit/inputs/test_inputs.py::test_str_input_valid": 0.00019979200033048983,
|
||||
"src/backend/tests/unit/inputs/test_inputs.py::test_table_input_invalid": 0.00026916500019069645,
|
||||
"src/backend/tests/unit/inputs/test_inputs.py::test_table_input_valid": 0.00023066599987942027,
|
||||
"src/backend/tests/unit/schema/test_schema_message.py::test_message_async_prompt_serialization": 0.2658414169995922,
|
||||
"src/backend/tests/unit/schema/test_schema_message.py::test_message_prompt_serialization": 0.0005853330003446899,
|
||||
"src/backend/tests/unit/test_api_key.py::test_create_api_key": 1.668041834000178,
|
||||
"src/backend/tests/unit/test_api_key.py::test_delete_api_key": 1.6283347500002492,
|
||||
"src/backend/tests/unit/test_api_key.py::test_get_api_keys": 1.5674538329994903,
|
||||
"src/backend/tests/unit/test_cache.py::test_build_graph": 1.1988659180001378,
|
||||
"src/backend/tests/unit/test_chat_endpoint.py::test_build_flow": 5.618974041000001,
|
||||
"src/backend/tests/unit/test_chat_endpoint.py::test_build_flow_from_request_data": 5.709847209000145,
|
||||
"src/backend/tests/unit/test_chat_endpoint.py::test_build_flow_with_frozen_path": 6.376642749999974,
|
||||
"src/backend/tests/unit/test_cli.py::test_components_path": 1.2666867920006553,
|
||||
"src/backend/tests/unit/test_cli.py::test_superuser": 1.6751555829996505,
|
||||
"src/backend/tests/unit/test_custom_component.py::test_build_config_field_keys": 0.2042501250002715,
|
||||
"src/backend/tests/unit/test_custom_component.py::test_build_config_field_value_keys": 0.19506029200010744,
|
||||
"src/backend/tests/unit/test_custom_component.py::test_build_config_field_values_dict": 0.1966598340004566,
|
||||
"src/backend/tests/unit/test_custom_component.py::test_build_config_fields_dict": 0.20268266700031745,
|
||||
"src/backend/tests/unit/test_custom_component.py::test_build_config_has_fields": 0.1948232069998994,
|
||||
"src/backend/tests/unit/test_custom_component.py::test_build_config_no_code": 0.000207583999781491,
|
||||
"src/backend/tests/unit/test_custom_component.py::test_build_config_return_type": 0.19622991700043713,
|
||||
"src/backend/tests/unit/test_custom_component.py::test_code_parser_get_tree": 0.00027658399994834326,
|
||||
"src/backend/tests/unit/test_custom_component.py::test_code_parser_init": 0.0002327079996575776,
|
||||
"src/backend/tests/unit/test_custom_component.py::test_code_parser_parse_ann_assign": 0.00019754200002353173,
|
||||
"src/backend/tests/unit/test_custom_component.py::test_code_parser_parse_arg_no_annotation": 0.00018179199969381443,
|
||||
"src/backend/tests/unit/test_custom_component.py::test_code_parser_parse_arg_with_annotation": 0.0001805840006454673,
|
||||
"src/backend/tests/unit/test_custom_component.py::test_code_parser_parse_assign": 0.0002079589999084419,
|
||||
"src/backend/tests/unit/test_custom_component.py::test_code_parser_parse_callable_details_no_args": 0.0001973339999494783,
|
||||
"src/backend/tests/unit/test_custom_component.py::test_code_parser_parse_classes": 0.00032654200003889855,
|
||||
"src/backend/tests/unit/test_custom_component.py::test_code_parser_parse_classes_raises": 0.0002649169996402634,
|
||||
"src/backend/tests/unit/test_custom_component.py::test_code_parser_parse_function_def_init": 0.00018600100020194077,
|
||||
"src/backend/tests/unit/test_custom_component.py::test_code_parser_parse_function_def_not_init": 0.00019508200011841836,
|
||||
"src/backend/tests/unit/test_custom_component.py::test_code_parser_parse_functions": 0.00021508300005734782,
|
||||
"src/backend/tests/unit/test_custom_component.py::test_code_parser_parse_global_vars": 0.00020745999972859863,
|
||||
"src/backend/tests/unit/test_custom_component.py::test_code_parser_parse_imports_import": 0.00025808299960772274,
|
||||
"src/backend/tests/unit/test_custom_component.py::test_code_parser_parse_imports_importfrom": 0.00018808400045600138,
|
||||
"src/backend/tests/unit/test_custom_component.py::test_code_parser_syntax_error": 0.001801750000595348,
|
||||
"src/backend/tests/unit/test_custom_component.py::test_component_code_null_error": 0.0001859579997471883,
|
||||
"src/backend/tests/unit/test_custom_component.py::test_component_get_code_tree": 0.0006688740004392457,
|
||||
"src/backend/tests/unit/test_custom_component.py::test_component_get_code_tree_syntax_error": 0.0002742089995990682,
|
||||
"src/backend/tests/unit/test_custom_component.py::test_component_get_function_valid": 0.00021645800006808713,
|
||||
"src/backend/tests/unit/test_custom_component.py::test_component_init": 0.00018979200012836372,
|
||||
"src/backend/tests/unit/test_custom_component.py::test_custom_component_build_not_implemented": 0.00019016700025531463,
|
||||
"src/backend/tests/unit/test_custom_component.py::test_custom_component_build_template_config": 0.00036833300055150175,
|
||||
"src/backend/tests/unit/test_custom_component.py::test_custom_component_class_template_validation_no_code": 0.00018979200012836372,
|
||||
"src/backend/tests/unit/test_custom_component.py::test_custom_component_get_code_tree_syntax_error": 0.0002411679997749161,
|
||||
"src/backend/tests/unit/test_custom_component.py::test_custom_component_get_function": 0.00022095800022725598,
|
||||
"src/backend/tests/unit/test_custom_component.py::test_custom_component_get_function_entrypoint_args": 0.0006820000003244786,
|
||||
"src/backend/tests/unit/test_custom_component.py::test_custom_component_get_function_entrypoint_args_no_args": 0.0003158340000481985,
|
||||
"src/backend/tests/unit/test_custom_component.py::test_custom_component_get_function_entrypoint_return_type": 0.0005181660003472643,
|
||||
"src/backend/tests/unit/test_custom_component.py::test_custom_component_get_function_entrypoint_return_type_no_return_type": 0.00031354199927591253,
|
||||
"src/backend/tests/unit/test_custom_component.py::test_custom_component_get_function_valid": 0.00019329300039316877,
|
||||
"src/backend/tests/unit/test_custom_component.py::test_custom_component_get_main_class_name": 0.0005222909999247349,
|
||||
"src/backend/tests/unit/test_custom_component.py::test_custom_component_get_main_class_name_no_main_class": 0.00021295800024745404,
|
||||
"src/backend/tests/unit/test_custom_component.py::test_custom_component_init": 0.0001823750003495661,
|
||||
"src/backend/tests/unit/test_custom_component.py::test_custom_component_multiple_outputs": 0.19756641600042713,
|
||||
"src/backend/tests/unit/test_custom_component.py::test_list_flows_flow_objects": 1.981454541994026,
|
||||
"src/backend/tests/unit/test_custom_component.py::test_list_flows_return_type": 1.8733046670095064,
|
||||
"src/backend/tests/unit/test_data_class.py::test_add_method_for_integers": 1.7596916669863276,
|
||||
"src/backend/tests/unit/test_data_class.py::test_add_method_for_strings": 2.099744750012178,
|
||||
"src/backend/tests/unit/test_data_class.py::test_add_method_with_non_overlapping_keys": 2.0075557490054052,
|
||||
"src/backend/tests/unit/test_data_class.py::test_conversion_from_document": 1.9583345409773756,
|
||||
"src/backend/tests/unit/test_data_class.py::test_conversion_to_document": 1.953191417036578,
|
||||
"src/backend/tests/unit/test_data_class.py::test_custom_attribute_get_set_del": 2.8074895000027027,
|
||||
"src/backend/tests/unit/test_data_class.py::test_custom_attribute_setting_and_getting": 1.744376168033341,
|
||||
"src/backend/tests/unit/test_data_class.py::test_data_initialization": 2.3415857510408387,
|
||||
"src/backend/tests/unit/test_data_class.py::test_deep_copy": 1.5598407920042519,
|
||||
"src/backend/tests/unit/test_data_class.py::test_dir_includes_data_keys": 2.4137807070219424,
|
||||
"src/backend/tests/unit/test_data_class.py::test_dir_reflects_attribute_deletion": 1.8897194170276634,
|
||||
"src/backend/tests/unit/test_data_class.py::test_get_text_with_empty_data": 2.669506582984468,
|
||||
"src/backend/tests/unit/test_data_class.py::test_get_text_with_none_data": 1.8896955420204904,
|
||||
"src/backend/tests/unit/test_data_class.py::test_get_text_with_text_key": 1.953111374983564,
|
||||
"src/backend/tests/unit/test_data_class.py::test_get_text_without_text_key": 1.9460047910106368,
|
||||
"src/backend/tests/unit/test_data_class.py::test_str_and_dir_methods": 2.6938894579943735,
|
||||
"src/backend/tests/unit/test_data_class.py::test_validate_data_with_extra_keys": 1.9336464170191903,
|
||||
"src/backend/tests/unit/test_data_components.py::test_build_with_multiple_urls": 0.026251333008985966,
|
||||
"src/backend/tests/unit/test_data_components.py::test_directory_component_build_with_multithreading": 0.0020231239905115217,
|
||||
"src/backend/tests/unit/test_data_components.py::test_directory_without_mocks": 0.38643029099330306,
|
||||
"src/backend/tests/unit/test_data_components.py::test_failed_request": 0.011844915978144854,
|
||||
"src/backend/tests/unit/test_data_components.py::test_parse_curl": 0.0004114170151297003,
|
||||
"src/backend/tests/unit/test_data_components.py::test_successful_get_request": 0.015994457993656397,
|
||||
"src/backend/tests/unit/test_data_components.py::test_timeout": 0.01364304099115543,
|
||||
"src/backend/tests/unit/test_data_components.py::test_url_component": 0.5631265829724725,
|
||||
"src/backend/tests/unit/test_database.py::test_create_flow": 2.5350006250082515,
|
||||
"src/backend/tests/unit/test_database.py::test_create_flow_with_invalid_data": 2.6853410840267316,
|
||||
"src/backend/tests/unit/test_database.py::test_create_flows": 3.4552309999999125,
|
||||
"src/backend/tests/unit/test_database.py::test_delete_flow": 4.201302792993374,
|
||||
"src/backend/tests/unit/test_database.py::test_delete_flows": 2.73355954195722,
|
||||
"src/backend/tests/unit/test_database.py::test_delete_flows_with_transaction_and_build": 3.3879740410193335,
|
||||
"src/backend/tests/unit/test_database.py::test_delete_nonexistent_flow": 2.906195083982311,
|
||||
"src/backend/tests/unit/test_database.py::test_download_file": 2.6433084169693757,
|
||||
"src/backend/tests/unit/test_database.py::test_get_nonexistent_flow": 2.9141747919784393,
|
||||
"src/backend/tests/unit/test_database.py::test_load_flows": 2.3472657920210622,
|
||||
"src/backend/tests/unit/test_database.py::test_migrate_transactions": 2.4188965820358135,
|
||||
"src/backend/tests/unit/test_database.py::test_migrate_transactions_no_duckdb": 2.4176759159890935,
|
||||
"src/backend/tests/unit/test_database.py::test_read_flow": 2.524181623972254,
|
||||
"src/backend/tests/unit/test_database.py::test_read_flows": 3.3437811249750666,
|
||||
"src/backend/tests/unit/test_database.py::test_read_only_starter_projects": 2.8177391680073924,
|
||||
"src/backend/tests/unit/test_database.py::test_sqlite_pragmas": 2.2383368749869987,
|
||||
"src/backend/tests/unit/test_database.py::test_update_flow": 3.1579460009816103,
|
||||
"src/backend/tests/unit/test_database.py::test_update_flow_idempotency": 2.9125417500035837,
|
||||
"src/backend/tests/unit/test_database.py::test_update_nonexistent_flow": 2.838372750993585,
|
||||
"src/backend/tests/unit/test_database.py::test_upload_file": 2.6103912079997826,
|
||||
"src/backend/tests/unit/test_experimental_components.py::test_python_function_component": 2.076999415992759,
|
||||
"src/backend/tests/unit/test_files.py::test_delete_file": 2.799217874009628,
|
||||
"src/backend/tests/unit/test_files.py::test_download_file": 2.51829199999338,
|
||||
"src/backend/tests/unit/test_files.py::test_file_operations": 3.3802113739948254,
|
||||
"src/backend/tests/unit/test_files.py::test_list_files": 2.7689662509947084,
|
||||
"src/backend/tests/unit/test_files.py::test_upload_file": 3.3243832079751883,
|
||||
"src/backend/tests/unit/test_frontend_nodes.py::test_frontend_node_to_dict": 2.1432127919979393,
|
||||
"src/backend/tests/unit/test_frontend_nodes.py::test_template_field_defaults": 2.2584460410289466,
|
||||
"src/backend/tests/unit/test_frontend_nodes.py::test_template_to_dict": 2.8126436240272596,
|
||||
"src/backend/tests/unit/test_helper_components.py::test_data_as_text_component": 2.214979208976729,
|
||||
"src/backend/tests/unit/test_helper_components.py::test_uuid_generator_component": 3.2323666680022143,
|
||||
"src/backend/tests/unit/test_initial_setup.py::test_create_or_update_starter_projects": 2.2390285000146832,
|
||||
"src/backend/tests/unit/test_initial_setup.py::test_get_project_data": 2.6407637080119457,
|
||||
"src/backend/tests/unit/test_initial_setup.py::test_load_starter_projects": 2.2846807509777136,
|
||||
"src/backend/tests/unit/test_initial_setup.py::test_refresh_starter_projects": 5.397776041994803,
|
||||
"src/backend/tests/unit/test_kubernetes_secrets.py::test_create_secret": 2.1846052090113517,
|
||||
"src/backend/tests/unit/test_kubernetes_secrets.py::test_delete_secret": 2.4931142500427086,
|
||||
"src/backend/tests/unit/test_kubernetes_secrets.py::test_email_address": 3.9143964989925735,
|
||||
"src/backend/tests/unit/test_kubernetes_secrets.py::test_encode_string": 2.658771957969293,
|
||||
"src/backend/tests/unit/test_kubernetes_secrets.py::test_encode_uuid": 3.536810541001614,
|
||||
"src/backend/tests/unit/test_kubernetes_secrets.py::test_ends_with_non_alphanumeric": 2.6400313759804703,
|
||||
"src/backend/tests/unit/test_kubernetes_secrets.py::test_get_secret": 2.2426519600267056,
|
||||
"src/backend/tests/unit/test_kubernetes_secrets.py::test_long_string": 2.5769125409715343,
|
||||
"src/backend/tests/unit/test_kubernetes_secrets.py::test_starts_with_non_alphanumeric": 2.9591099170211237,
|
||||
"src/backend/tests/unit/test_kubernetes_secrets.py::test_uuid_case_insensitivity": 2.8027220430085436,
|
||||
"src/backend/tests/unit/test_loading.py::test_load_flow_from_json": 2.0592095839965623,
|
||||
"src/backend/tests/unit/test_loading.py::test_load_flow_from_json_object": 0.05121591599890962,
|
||||
"src/backend/tests/unit/test_loading.py::test_load_flow_from_json_with_tweaks": 2.3594004999904428,
|
||||
"src/backend/tests/unit/test_logger.py::test_enabled": 2.366979167010868,
|
||||
"src/backend/tests/unit/test_logger.py::test_get_after_timestamp": 2.843343543005176,
|
||||
"src/backend/tests/unit/test_logger.py::test_get_before_timestamp": 2.0495081240078434,
|
||||
"src/backend/tests/unit/test_logger.py::test_get_last_n": 3.3493437920114957,
|
||||
"src/backend/tests/unit/test_logger.py::test_init_default": 4.3632337910239585,
|
||||
"src/backend/tests/unit/test_logger.py::test_init_with_env_variable": 2.747672124998644,
|
||||
"src/backend/tests/unit/test_logger.py::test_len": 3.0128796670178417,
|
||||
"src/backend/tests/unit/test_logger.py::test_max_size": 2.5830446239560843,
|
||||
"src/backend/tests/unit/test_logger.py::test_write": 3.656159915990429,
|
||||
"src/backend/tests/unit/test_logger.py::test_write_overflow": 4.817402709042653,
|
||||
"src/backend/tests/unit/test_login.py::test_login_successful": 3.081307165994076,
|
||||
"src/backend/tests/unit/test_login.py::test_login_unsuccessful_wrong_password": 3.23898391702096,
|
||||
"src/backend/tests/unit/test_login.py::test_login_unsuccessful_wrong_username": 2.315841832984006,
|
||||
"src/backend/tests/unit/test_messages.py::test_add_messages": 2.261571748997085,
|
||||
"src/backend/tests/unit/test_messages.py::test_add_messagetables": 2.3893967490294017,
|
||||
"src/backend/tests/unit/test_messages.py::test_convert_to_langchain[convert_to_langchain_type]": 3.2416470000171103,
|
||||
"src/backend/tests/unit/test_messages.py::test_convert_to_langchain[message]": 2.004590749013005,
|
||||
"src/backend/tests/unit/test_messages.py::test_delete_messages": 2.3871561660198495,
|
||||
"src/backend/tests/unit/test_messages.py::test_get_messages": 2.0157879999896977,
|
||||
"src/backend/tests/unit/test_messages.py::test_store_message": 1.9027003319642972,
|
||||
"src/backend/tests/unit/test_process.py::test_load_langchain_object_with_cached_session": 2.2040907500195317,
|
||||
"src/backend/tests/unit/test_process.py::test_load_langchain_object_with_no_cached_session": 2.883888084004866,
|
||||
"src/backend/tests/unit/test_process.py::test_load_langchain_object_without_session_id": 2.329415375017561,
|
||||
"src/backend/tests/unit/test_process.py::test_multiple_tweaks": 2.047054874972673,
|
||||
"src/backend/tests/unit/test_process.py::test_no_tweaks": 1.952550498972414,
|
||||
"src/backend/tests/unit/test_process.py::test_single_tweak": 2.148759791016346,
|
||||
"src/backend/tests/unit/test_process.py::test_tweak_no_node_id": 3.1278445839998312,
|
||||
"src/backend/tests/unit/test_process.py::test_tweak_not_in_template": 2.113566374988295,
|
||||
"src/backend/tests/unit/test_setup_superuser.py::test_teardown_superuser_default_superuser": 2.256663625012152,
|
||||
"src/backend/tests/unit/test_setup_superuser.py::test_teardown_superuser_no_default_superuser": 2.211974083009409,
|
||||
"src/backend/tests/unit/test_telemetry.py::test_gauge": 2.4124685839633457,
|
||||
"src/backend/tests/unit/test_telemetry.py::test_gauge_with_counter_method": 2.186464792001061,
|
||||
"src/backend/tests/unit/test_telemetry.py::test_gauge_with_historgram_method": 2.6113254159863573,
|
||||
"src/backend/tests/unit/test_telemetry.py::test_gauge_with_up_down_counter_method": 2.225708084035432,
|
||||
"src/backend/tests/unit/test_telemetry.py::test_increment_counter": 2.130592000001343,
|
||||
"src/backend/tests/unit/test_telemetry.py::test_increment_counter_empty_label": 2.2976541249954607,
|
||||
"src/backend/tests/unit/test_telemetry.py::test_increment_counter_missing_mandatory_label": 2.443581625993829,
|
||||
"src/backend/tests/unit/test_telemetry.py::test_increment_counter_unregisted_metric": 2.630037208989961,
|
||||
"src/backend/tests/unit/test_telemetry.py::test_init": 2.1476573330292013,
|
||||
"src/backend/tests/unit/test_telemetry.py::test_missing_labels": 2.3570764580217656,
|
||||
"src/backend/tests/unit/test_telemetry.py::test_multithreaded_singleton": 2.390594750002492,
|
||||
"src/backend/tests/unit/test_telemetry.py::test_multithreaded_singleton_race_condition": 2.437567832006607,
|
||||
"src/backend/tests/unit/test_telemetry.py::test_opentelementry_singleton": 3.0913529580284376,
|
||||
"src/backend/tests/unit/test_template.py::test_build_template_from_function": 2.9347434579976834,
|
||||
"src/backend/tests/unit/test_template.py::test_get_base_classes": 2.118878333014436,
|
||||
"src/backend/tests/unit/test_template.py::test_get_default_factory": 2.143760042003123,
|
||||
"src/backend/tests/unit/test_validate_code.py::test_create_function": 2.2330028339929413,
|
||||
"src/backend/tests/unit/test_validate_code.py::test_execute_function_missing_function": 1.7509510009840596,
|
||||
"src/backend/tests/unit/test_validate_code.py::test_execute_function_missing_module": 1.850503541965736,
|
||||
"src/backend/tests/unit/test_validate_code.py::test_execute_function_missing_schema": 1.81301379200886,
|
||||
"src/backend/tests/unit/test_validate_code.py::test_execute_function_success": 2.074162457982311,
|
||||
"src/backend/tests/unit/test_validate_code.py::test_validate_code": 2.2336132919881493,
|
||||
"src/backend/tests/unit/test_version.py::test_compute_main": 2.139949625969166,
|
||||
"src/backend/tests/unit/test_version.py::test_version": 1.6260940420324914,
|
||||
"src/backend/tests/unit/utils/test_connection_string_parser.py::test_transform_connection_string[protocol::password@host-protocol::password@host]": 0.0012022080190945417,
|
||||
"src/backend/tests/unit/utils/test_connection_string_parser.py::test_transform_connection_string[protocol:user:pa:ss:word@host-protocol:user:pa:ss:word@host]": 0.000848833005875349,
|
||||
"src/backend/tests/unit/utils/test_connection_string_parser.py::test_transform_connection_string[protocol:user:pa@ss@word@host-protocol:user:pa%40ss%40word@host]": 0.001619456976186484,
|
||||
"src/backend/tests/unit/utils/test_connection_string_parser.py::test_transform_connection_string[protocol:user:pass@word@host-protocol:user:pass%40word@host]": 0.000586748996283859,
|
||||
"src/backend/tests/unit/utils/test_connection_string_parser.py::test_transform_connection_string[protocol:user:password@-protocol:user:password@]": 0.0025060399784706533,
|
||||
"src/backend/tests/unit/utils/test_connection_string_parser.py::test_transform_connection_string[protocol:user:password@host-protocol:user:password@host]": 0.0007859579636715353,
|
||||
"src/backend/tests/unit/utils/test_connection_string_parser.py::test_transform_connection_string[protocol:user@host-protocol:user@host]": 0.0004099990183021873,
|
||||
"src/backend/tests/unit/utils/test_connection_string_parser.py::test_transform_connection_string[user:password@host-user:password@host]": 0.0005190849769860506
|
||||
"src/backend/tests/unit/test_custom_component.py::test_list_flows_return_type": 0.2607629169997381,
|
||||
"src/backend/tests/unit/test_custom_component_with_client.py::test_list_flows_flow_objects": 1.306553499999609,
|
||||
"src/backend/tests/unit/test_data_class.py::test_add_method_for_integers": 1.1870880830006172,
|
||||
"src/backend/tests/unit/test_data_class.py::test_add_method_for_strings": 1.1892704990000311,
|
||||
"src/backend/tests/unit/test_data_class.py::test_add_method_with_non_overlapping_keys": 1.1890747499996905,
|
||||
"src/backend/tests/unit/test_data_class.py::test_conversion_from_document": 1.2196368339996297,
|
||||
"src/backend/tests/unit/test_data_class.py::test_conversion_to_document": 1.1908134569998765,
|
||||
"src/backend/tests/unit/test_data_class.py::test_custom_attribute_get_set_del": 1.1929801669998596,
|
||||
"src/backend/tests/unit/test_data_class.py::test_custom_attribute_setting_and_getting": 1.1900344170003336,
|
||||
"src/backend/tests/unit/test_data_class.py::test_data_initialization": 1.2146948340000563,
|
||||
"src/backend/tests/unit/test_data_class.py::test_deep_copy": 1.1954752910000934,
|
||||
"src/backend/tests/unit/test_data_class.py::test_dir_includes_data_keys": 2.760468000000401,
|
||||
"src/backend/tests/unit/test_data_class.py::test_dir_reflects_attribute_deletion": 1.2251055420001649,
|
||||
"src/backend/tests/unit/test_data_class.py::test_get_text_with_empty_data": 1.2183382499997606,
|
||||
"src/backend/tests/unit/test_data_class.py::test_get_text_with_none_data": 1.2144034150001062,
|
||||
"src/backend/tests/unit/test_data_class.py::test_get_text_with_text_key": 1.2315653749997182,
|
||||
"src/backend/tests/unit/test_data_class.py::test_get_text_without_text_key": 1.2123793340001612,
|
||||
"src/backend/tests/unit/test_data_class.py::test_str_and_dir_methods": 1.2003138760001093,
|
||||
"src/backend/tests/unit/test_data_class.py::test_validate_data_with_extra_keys": 1.1931614580003043,
|
||||
"src/backend/tests/unit/test_data_components.py::test_build_with_multiple_urls": 0.005447873999855801,
|
||||
"src/backend/tests/unit/test_data_components.py::test_directory_component_build_with_multithreading": 0.0007867510003052303,
|
||||
"src/backend/tests/unit/test_data_components.py::test_directory_without_mocks": 0.25596470800019233,
|
||||
"src/backend/tests/unit/test_data_components.py::test_failed_request": 0.00482766699997228,
|
||||
"src/backend/tests/unit/test_data_components.py::test_parse_curl": 0.0003262509999331087,
|
||||
"src/backend/tests/unit/test_data_components.py::test_successful_get_request": 0.0054463749997921695,
|
||||
"src/backend/tests/unit/test_data_components.py::test_timeout": 0.004433167000115645,
|
||||
"src/backend/tests/unit/test_data_components.py::test_url_component": 0.4809711249999964,
|
||||
"src/backend/tests/unit/test_database.py::test_create_flow": 1.6828834990005817,
|
||||
"src/backend/tests/unit/test_database.py::test_create_flow_with_invalid_data": 1.6774957920001725,
|
||||
"src/backend/tests/unit/test_database.py::test_create_flows": 1.673384124999302,
|
||||
"src/backend/tests/unit/test_database.py::test_delete_flow": 1.6573062500006017,
|
||||
"src/backend/tests/unit/test_database.py::test_delete_flows": 1.7055409169997802,
|
||||
"src/backend/tests/unit/test_database.py::test_delete_flows_with_transaction_and_build": 1.7174484999995911,
|
||||
"src/backend/tests/unit/test_database.py::test_delete_nonexistent_flow": 1.6730859590002183,
|
||||
"src/backend/tests/unit/test_database.py::test_download_file": 3.4064119170002414,
|
||||
"src/backend/tests/unit/test_database.py::test_get_nonexistent_flow": 1.6842376250001507,
|
||||
"src/backend/tests/unit/test_database.py::test_load_flows": 1.3783337080003548,
|
||||
"src/backend/tests/unit/test_database.py::test_migrate_transactions": 1.40214775000004,
|
||||
"src/backend/tests/unit/test_database.py::test_migrate_transactions_no_duckdb": 1.364264834000096,
|
||||
"src/backend/tests/unit/test_database.py::test_read_flow": 1.6665177079999012,
|
||||
"src/backend/tests/unit/test_database.py::test_read_flows": 1.7203122079999957,
|
||||
"src/backend/tests/unit/test_database.py::test_read_only_starter_projects": 1.7277780829995208,
|
||||
"src/backend/tests/unit/test_database.py::test_sqlite_pragmas": 1.3023467509997317,
|
||||
"src/backend/tests/unit/test_database.py::test_update_flow": 1.6924472499999865,
|
||||
"src/backend/tests/unit/test_database.py::test_update_flow_idempotency": 1.7028064580003957,
|
||||
"src/backend/tests/unit/test_database.py::test_update_nonexistent_flow": 1.7007274170000528,
|
||||
"src/backend/tests/unit/test_database.py::test_upload_file": 1.6786055420002413,
|
||||
"src/backend/tests/unit/test_experimental_components.py::test_python_function_component": 1.3152118330008307,
|
||||
"src/backend/tests/unit/test_files.py::test_delete_file": 1.8698114990006616,
|
||||
"src/backend/tests/unit/test_files.py::test_download_file": 1.8618997500002479,
|
||||
"src/backend/tests/unit/test_files.py::test_file_operations": 1.8774095419998957,
|
||||
"src/backend/tests/unit/test_files.py::test_list_files": 1.8360633750003217,
|
||||
"src/backend/tests/unit/test_files.py::test_upload_file": 1.8361791669995,
|
||||
"src/backend/tests/unit/test_frontend_nodes.py::test_frontend_node_to_dict": 1.2789837089994762,
|
||||
"src/backend/tests/unit/test_frontend_nodes.py::test_template_field_defaults": 1.4903630839994548,
|
||||
"src/backend/tests/unit/test_frontend_nodes.py::test_template_to_dict": 3.1915530399996896,
|
||||
"src/backend/tests/unit/test_helper_components.py::test_data_as_text_component": 1.2936121669995373,
|
||||
"src/backend/tests/unit/test_helper_components.py::test_uuid_generator_component": 1.2925201660000312,
|
||||
"src/backend/tests/unit/test_initial_setup.py::test_create_or_update_starter_projects": 1.3174052090002988,
|
||||
"src/backend/tests/unit/test_initial_setup.py::test_get_project_data": 1.3585754989994712,
|
||||
"src/backend/tests/unit/test_initial_setup.py::test_load_starter_projects": 1.2834318330001224,
|
||||
"src/backend/tests/unit/test_initial_setup.py::test_refresh_starter_projects": 2.5242092499997852,
|
||||
"src/backend/tests/unit/test_kubernetes_secrets.py::test_create_secret": 1.277097417000732,
|
||||
"src/backend/tests/unit/test_kubernetes_secrets.py::test_delete_secret": 1.2887339569997494,
|
||||
"src/backend/tests/unit/test_kubernetes_secrets.py::test_email_address": 1.3158049170001505,
|
||||
"src/backend/tests/unit/test_kubernetes_secrets.py::test_encode_string": 1.2695311679999577,
|
||||
"src/backend/tests/unit/test_kubernetes_secrets.py::test_encode_uuid": 1.259859792000043,
|
||||
"src/backend/tests/unit/test_kubernetes_secrets.py::test_ends_with_non_alphanumeric": 1.302864874999159,
|
||||
"src/backend/tests/unit/test_kubernetes_secrets.py::test_get_secret": 1.2660873319996426,
|
||||
"src/backend/tests/unit/test_kubernetes_secrets.py::test_long_string": 1.2887962920003702,
|
||||
"src/backend/tests/unit/test_kubernetes_secrets.py::test_starts_with_non_alphanumeric": 1.3552359580003213,
|
||||
"src/backend/tests/unit/test_kubernetes_secrets.py::test_uuid_case_insensitivity": 1.299499248000302,
|
||||
"src/backend/tests/unit/test_loading.py::test_load_flow_from_json": 0.0960882499998661,
|
||||
"src/backend/tests/unit/test_loading.py::test_load_flow_from_json_object": 0.018880542000260903,
|
||||
"src/backend/tests/unit/test_loading.py::test_load_flow_from_json_with_tweaks": 0.016509083999608265,
|
||||
"src/backend/tests/unit/test_logger.py::test_enabled": 1.0503544179996425,
|
||||
"src/backend/tests/unit/test_logger.py::test_get_after_timestamp": 1.057395667000037,
|
||||
"src/backend/tests/unit/test_logger.py::test_get_before_timestamp": 1.069635374000427,
|
||||
"src/backend/tests/unit/test_logger.py::test_get_last_n": 1.0638129170001775,
|
||||
"src/backend/tests/unit/test_logger.py::test_init_default": 3.221781582999938,
|
||||
"src/backend/tests/unit/test_logger.py::test_init_with_env_variable": 1.1272078760002842,
|
||||
"src/backend/tests/unit/test_logger.py::test_len": 1.0672918339996613,
|
||||
"src/backend/tests/unit/test_logger.py::test_max_size": 1.0532803749997584,
|
||||
"src/backend/tests/unit/test_logger.py::test_write": 1.083741292999548,
|
||||
"src/backend/tests/unit/test_logger.py::test_write_overflow": 1.0727743750007903,
|
||||
"src/backend/tests/unit/test_login.py::test_login_successful": 1.495486374999473,
|
||||
"src/backend/tests/unit/test_login.py::test_login_unsuccessful_wrong_password": 1.2617856669999128,
|
||||
"src/backend/tests/unit/test_login.py::test_login_unsuccessful_wrong_username": 1.0718942079993212,
|
||||
"src/backend/tests/unit/test_messages.py::test_add_messages": 1.0813413340001716,
|
||||
"src/backend/tests/unit/test_messages.py::test_add_messagetables": 1.064473082999939,
|
||||
"src/backend/tests/unit/test_messages.py::test_convert_to_langchain[convert_to_langchain_type]": 1.0604117919997407,
|
||||
"src/backend/tests/unit/test_messages.py::test_convert_to_langchain[message]": 1.0689540419998593,
|
||||
"src/backend/tests/unit/test_messages.py::test_delete_messages": 1.1744598340001176,
|
||||
"src/backend/tests/unit/test_messages.py::test_get_messages": 1.0707767070002774,
|
||||
"src/backend/tests/unit/test_messages.py::test_store_message": 1.0799672490002195,
|
||||
"src/backend/tests/unit/test_process.py::test_load_langchain_object_with_cached_session": 1.0705989160001081,
|
||||
"src/backend/tests/unit/test_process.py::test_load_langchain_object_with_no_cached_session": 1.0660591649993876,
|
||||
"src/backend/tests/unit/test_process.py::test_load_langchain_object_without_session_id": 1.0685117090001768,
|
||||
"src/backend/tests/unit/test_process.py::test_multiple_tweaks": 3.4656270829996174,
|
||||
"src/backend/tests/unit/test_process.py::test_no_tweaks": 1.0528393340005096,
|
||||
"src/backend/tests/unit/test_process.py::test_single_tweak": 1.0588130830001319,
|
||||
"src/backend/tests/unit/test_process.py::test_tweak_no_node_id": 1.0907960420004201,
|
||||
"src/backend/tests/unit/test_process.py::test_tweak_not_in_template": 1.065006457999516,
|
||||
"src/backend/tests/unit/test_setup_superuser.py::test_teardown_superuser_default_superuser": 1.0545740010002191,
|
||||
"src/backend/tests/unit/test_setup_superuser.py::test_teardown_superuser_no_default_superuser": 1.054325458999756,
|
||||
"src/backend/tests/unit/test_telemetry.py::test_gauge": 1.081740833999902,
|
||||
"src/backend/tests/unit/test_telemetry.py::test_gauge_with_counter_method": 1.056230042000152,
|
||||
"src/backend/tests/unit/test_telemetry.py::test_gauge_with_historgram_method": 1.110880250000264,
|
||||
"src/backend/tests/unit/test_telemetry.py::test_gauge_with_up_down_counter_method": 1.1089114589999554,
|
||||
"src/backend/tests/unit/test_telemetry.py::test_increment_counter": 1.091222834000746,
|
||||
"src/backend/tests/unit/test_telemetry.py::test_increment_counter_empty_label": 1.0598395000001801,
|
||||
"src/backend/tests/unit/test_telemetry.py::test_increment_counter_missing_mandatory_label": 1.0523453739997422,
|
||||
"src/backend/tests/unit/test_telemetry.py::test_increment_counter_unregisted_metric": 1.060642084000392,
|
||||
"src/backend/tests/unit/test_telemetry.py::test_init": 1.0586442910002916,
|
||||
"src/backend/tests/unit/test_telemetry.py::test_missing_labels": 1.0542013740000584,
|
||||
"src/backend/tests/unit/test_telemetry.py::test_multithreaded_singleton": 1.0596915410001202,
|
||||
"src/backend/tests/unit/test_telemetry.py::test_multithreaded_singleton_race_condition": 1.078360167000028,
|
||||
"src/backend/tests/unit/test_telemetry.py::test_opentelementry_singleton": 1.0586542500004725,
|
||||
"src/backend/tests/unit/test_template.py::test_build_template_from_function": 1.0667507910002314,
|
||||
"src/backend/tests/unit/test_template.py::test_get_base_classes": 1.0488440839994837,
|
||||
"src/backend/tests/unit/test_template.py::test_get_default_factory": 1.061691208999946,
|
||||
"src/backend/tests/unit/test_validate_code.py::test_create_function": 3.7202681249996203,
|
||||
"src/backend/tests/unit/test_validate_code.py::test_execute_function_missing_function": 1.0697480410003664,
|
||||
"src/backend/tests/unit/test_validate_code.py::test_execute_function_missing_module": 1.0638055839999652,
|
||||
"src/backend/tests/unit/test_validate_code.py::test_execute_function_missing_schema": 1.0542077080003764,
|
||||
"src/backend/tests/unit/test_validate_code.py::test_execute_function_success": 1.0714820839998538,
|
||||
"src/backend/tests/unit/test_validate_code.py::test_validate_code": 1.0665104990002874,
|
||||
"src/backend/tests/unit/test_version.py::test_compute_main": 1.0618379169995933,
|
||||
"src/backend/tests/unit/test_version.py::test_version": 1.0611935000001722,
|
||||
"src/backend/tests/unit/utils/test_connection_string_parser.py::test_transform_connection_string[protocol::password@host-protocol::password@host]": 0.0002089159997922252,
|
||||
"src/backend/tests/unit/utils/test_connection_string_parser.py::test_transform_connection_string[protocol:user:pa:ss:word@host-protocol:user:pa:ss:word@host]": 0.0002251249998153071,
|
||||
"src/backend/tests/unit/utils/test_connection_string_parser.py::test_transform_connection_string[protocol:user:pa@ss@word@host-protocol:user:pa%40ss%40word@host]": 0.0002600429997983156,
|
||||
"src/backend/tests/unit/utils/test_connection_string_parser.py::test_transform_connection_string[protocol:user:pass@word@host-protocol:user:pass%40word@host]": 0.0002567910000834672,
|
||||
"src/backend/tests/unit/utils/test_connection_string_parser.py::test_transform_connection_string[protocol:user:password@-protocol:user:password@]": 0.0002196240002376726,
|
||||
"src/backend/tests/unit/utils/test_connection_string_parser.py::test_transform_connection_string[protocol:user:password@host-protocol:user:password@host]": 0.0002557500001785229,
|
||||
"src/backend/tests/unit/utils/test_connection_string_parser.py::test_transform_connection_string[protocol:user@host-protocol:user@host]": 0.00021862499943381408,
|
||||
"src/backend/tests/unit/utils/test_connection_string_parser.py::test_transform_connection_string[user:password@host-user:password@host]": 0.0002157910003006691
|
||||
}
|
||||
|
|
@ -20,7 +20,7 @@ from langflow.inputs.inputs import (
|
|||
SecretStrInput,
|
||||
StrInput,
|
||||
TableInput,
|
||||
_instantiate_input,
|
||||
instantiate_input,
|
||||
)
|
||||
from langflow.schema.message import Message
|
||||
|
||||
|
|
@ -69,14 +69,14 @@ def test_message_text_input_invalid():
|
|||
|
||||
def test_instantiate_input_valid():
|
||||
data = {"name": "valid_input", "value": "This is a string"}
|
||||
input_instance = _instantiate_input("StrInput", data)
|
||||
input_instance = instantiate_input("StrInput", data)
|
||||
assert isinstance(input_instance, StrInput)
|
||||
assert input_instance.value == "This is a string"
|
||||
|
||||
|
||||
def test_instantiate_input_invalid():
|
||||
with pytest.raises(ValueError):
|
||||
_instantiate_input("InvalidInput", {"name": "invalid_input", "value": "This is a string"})
|
||||
instantiate_input("InvalidInput", {"name": "invalid_input", "value": "This is a string"})
|
||||
|
||||
|
||||
def test_handle_input_valid():
|
||||
|
|
@ -218,8 +218,8 @@ def test_instantiate_input_comprehensive():
|
|||
}
|
||||
|
||||
for input_type, data in valid_data.items():
|
||||
input_instance = _instantiate_input(input_type, data)
|
||||
input_instance = instantiate_input(input_type, data)
|
||||
assert isinstance(input_instance, InputTypesMap[input_type])
|
||||
|
||||
with pytest.raises(ValueError):
|
||||
_instantiate_input("InvalidInput", {"name": "invalid_input", "value": "Invalid"})
|
||||
instantiate_input("InvalidInput", {"name": "invalid_input", "value": "Invalid"})
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue