rename Record to Data
This commit is contained in:
parent
a562ae5b0b
commit
1d0056f4fc
142 changed files with 819 additions and 869 deletions
|
|
@ -7,7 +7,6 @@ import pytest
|
|||
import respx
|
||||
from dictdiffer import diff
|
||||
from httpx import Response
|
||||
|
||||
from langflow.components import data
|
||||
|
||||
|
||||
|
|
@ -109,11 +108,11 @@ async def test_build_with_multiple_urls(api_request):
|
|||
assert len(results) == len(urls)
|
||||
|
||||
|
||||
@patch("langflow.components.data.Directory.parallel_load_records")
|
||||
@patch("langflow.components.data.Directory.parallel_load_data")
|
||||
@patch("langflow.components.data.Directory.retrieve_file_paths")
|
||||
@patch("langflow.components.data.DirectoryComponent.resolve_path")
|
||||
def test_directory_component_build_with_multithreading(
|
||||
mock_resolve_path, mock_retrieve_file_paths, mock_parallel_load_records
|
||||
mock_resolve_path, mock_retrieve_file_paths, mock_parallel_load_data
|
||||
):
|
||||
# Arrange
|
||||
directory_component = data.DirectoryComponent()
|
||||
|
|
@ -129,7 +128,7 @@ def test_directory_component_build_with_multithreading(
|
|||
mock_retrieve_file_paths.return_value = [
|
||||
os.path.join(path, file) for file in os.listdir(path) if file.endswith(".py")
|
||||
]
|
||||
mock_parallel_load_records.return_value = [Mock()]
|
||||
mock_parallel_load_data.return_value = [Mock()]
|
||||
|
||||
# Act
|
||||
directory_component.build(
|
||||
|
|
@ -145,7 +144,7 @@ def test_directory_component_build_with_multithreading(
|
|||
# Assert
|
||||
mock_resolve_path.assert_called_once_with(path)
|
||||
mock_retrieve_file_paths.assert_called_once_with(path, load_hidden, recursive, depth)
|
||||
mock_parallel_load_records.assert_called_once_with(
|
||||
mock_parallel_load_data.assert_called_once_with(
|
||||
mock_retrieve_file_paths.return_value, silent_errors, max_concurrency
|
||||
)
|
||||
|
||||
|
|
@ -163,7 +162,7 @@ def test_directory_without_mocks():
|
|||
setup_path = Path(setup.__file__).parent / "starter_projects"
|
||||
results = directory_component.build(str(setup_path), use_multithreading=False)
|
||||
assert len(results) == len(projects)
|
||||
# each result is a Record that contains the content attribute
|
||||
# each result is a Data that contains the content attribute
|
||||
# each are dict that are exactly the same as one of the projects
|
||||
for i, result in enumerate(results):
|
||||
assert result.text in projects, list(diff(result.text, projects[i]))
|
||||
|
|
@ -180,7 +179,7 @@ def test_directory_without_mocks():
|
|||
def test_url_component():
|
||||
url_component = data.URLComponent()
|
||||
# the url component can be used to load the contents of a website
|
||||
records = url_component.build(["https://langflow.org"])
|
||||
assert all(record.data for record in records)
|
||||
assert all(record.text for record in records)
|
||||
assert all(record.source for record in records)
|
||||
_data = url_component.build(["https://langflow.org"])
|
||||
assert all(value.data for value in _data)
|
||||
assert all(value.text for value in _data)
|
||||
assert all(value.source for value in _data)
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@ from uuid import UUID, uuid4
|
|||
import pytest
|
||||
from fastapi import status
|
||||
from fastapi.testclient import TestClient
|
||||
|
||||
from langflow.custom.directory_reader.directory_reader import DirectoryReader
|
||||
from langflow.services.deps import get_settings_service
|
||||
|
||||
|
|
@ -479,7 +480,7 @@ def test_successful_run_with_output_type_text(client, starter_project, created_a
|
|||
display_names = [output.get("component_display_name") for output in outputs_dict.get("outputs")]
|
||||
assert all([name in display_names for name in ["Chat Output"]]), display_names
|
||||
inner_results = [output.get("results") for output in outputs_dict.get("outputs")]
|
||||
expected_keys = ["Record", "Message"]
|
||||
expected_keys = ["Data", "Message"]
|
||||
assert all([key in result for result in inner_results for key in expected_keys]), outputs_dict
|
||||
|
||||
|
||||
|
|
@ -510,7 +511,7 @@ def test_successful_run_with_output_type_any(client, starter_project, created_ap
|
|||
display_names = [output.get("component_display_name") for output in outputs_dict.get("outputs")]
|
||||
assert all([name in display_names for name in ["Chat Output"]]), display_names
|
||||
inner_results = [output.get("results") for output in outputs_dict.get("outputs")]
|
||||
expected_keys = ["Record", "Message"]
|
||||
expected_keys = ["Data", "Message"]
|
||||
assert all([key in result for result in inner_results for key in expected_keys]), outputs_dict
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -1,8 +1,7 @@
|
|||
from langchain_core.documents import Document
|
||||
|
||||
from langflow.components import helpers
|
||||
from langflow.custom.utils import build_custom_component_template
|
||||
from langflow.schema import Record
|
||||
from langflow.schema import Data
|
||||
|
||||
|
||||
def test_update_record_component():
|
||||
|
|
@ -11,7 +10,7 @@ def test_update_record_component():
|
|||
|
||||
# Act
|
||||
new_data = {"new_key": "new_value"}
|
||||
existing_record = Record(data={"existing_key": "existing_value"})
|
||||
existing_record = Data(data={"existing_key": "existing_value"})
|
||||
result = update_record_component.build(existing_record, new_data)
|
||||
assert result.data == {"existing_key": "existing_value", "new_key": "new_value"}
|
||||
assert result.existing_key == "existing_value"
|
||||
|
|
@ -29,7 +28,7 @@ def test_document_to_record_component():
|
|||
|
||||
# Assert
|
||||
# Replace with your actual expected result
|
||||
assert result == [Record(data={"text": "key: value", "url": "https://example.com"})]
|
||||
assert result == [Data(data={"text": "key: value", "url": "https://example.com"})]
|
||||
|
||||
|
||||
def test_uuid_generator_component():
|
||||
|
|
@ -52,15 +51,15 @@ def test_uuid_generator_component():
|
|||
assert len(result) == 36
|
||||
|
||||
|
||||
def test_records_as_text_component():
|
||||
def test_data_as_text_component():
|
||||
# Arrange
|
||||
records_as_text_component = helpers.RecordsToTextComponent()
|
||||
data_as_text_component = helpers.RecordsToTextComponent()
|
||||
|
||||
# Act
|
||||
# Replace with your actual test data
|
||||
records = [Record(data={"key": "value", "bacon": "eggs"})]
|
||||
data = [Data(data={"key": "value", "bacon": "eggs"})]
|
||||
template = "Data:{data} -- Bacon:{bacon}"
|
||||
result = records_as_text_component.build(records, template=template)
|
||||
result = data_as_text_component.build(data, template=template)
|
||||
|
||||
# Assert
|
||||
# Replace with your actual expected result
|
||||
|
|
@ -78,4 +77,4 @@ def test_text_to_record_component():
|
|||
|
||||
# Assert
|
||||
# Replace with your actual expected result
|
||||
assert result == Record(data={"key": "value"})
|
||||
assert result == Data(data={"key": "value"})
|
||||
|
|
|
|||
|
|
@ -1,23 +1,22 @@
|
|||
from langchain_core.documents import Document
|
||||
|
||||
from langflow.schema import Record
|
||||
from langflow.schema import Data
|
||||
|
||||
|
||||
def test_record_initialization():
|
||||
record = Record(text_key="msg", data={"msg": "Hello, World!", "extra": "value"})
|
||||
record = Data(text_key="msg", data={"msg": "Hello, World!", "extra": "value"})
|
||||
assert record.msg == "Hello, World!"
|
||||
assert record.extra == "value"
|
||||
|
||||
|
||||
def test_validate_data_with_extra_keys():
|
||||
record = Record(dummy_key="dummy", data={"key": "value"})
|
||||
record = Data(dummy_key="dummy", data={"key": "value"})
|
||||
assert record.data["dummy_key"] == "dummy"
|
||||
assert "dummy_key" in record.data
|
||||
assert record.key == "value"
|
||||
|
||||
|
||||
def test_conversion_to_document():
|
||||
record = Record(data={"text": "Sample text", "meta": "data"})
|
||||
record = Data(data={"text": "Sample text", "meta": "data"})
|
||||
document = record.to_lc_document()
|
||||
assert document.page_content == "Sample text"
|
||||
assert document.metadata == {"meta": "data"}
|
||||
|
|
@ -25,35 +24,35 @@ def test_conversion_to_document():
|
|||
|
||||
def test_conversion_from_document():
|
||||
document = Document(page_content="Doc content", metadata={"meta": "info"})
|
||||
record = Record.from_document(document)
|
||||
record = Data.from_document(document)
|
||||
assert record.text == "Doc content"
|
||||
assert record.meta == "info"
|
||||
|
||||
|
||||
def test_add_method_for_strings():
|
||||
record1 = Record(data={"text": "Hello"})
|
||||
record2 = Record(data={"text": " World"})
|
||||
record1 = Data(data={"text": "Hello"})
|
||||
record2 = Data(data={"text": " World"})
|
||||
combined = record1 + record2
|
||||
assert combined.text == "Hello World"
|
||||
|
||||
|
||||
def test_add_method_for_integers():
|
||||
record1 = Record(data={"number": 5})
|
||||
record2 = Record(data={"number": 10})
|
||||
record1 = Data(data={"number": 5})
|
||||
record2 = Data(data={"number": 10})
|
||||
combined = record1 + record2
|
||||
assert combined.number == 15
|
||||
|
||||
|
||||
def test_add_method_with_non_overlapping_keys():
|
||||
record1 = Record(data={"text": "Hello"})
|
||||
record2 = Record(data={"number": 10})
|
||||
record1 = Data(data={"text": "Hello"})
|
||||
record2 = Data(data={"number": 10})
|
||||
combined = record1 + record2
|
||||
assert combined.text == "Hello"
|
||||
assert combined.number == 10
|
||||
|
||||
|
||||
def test_custom_attribute_get_set_del():
|
||||
record = Record()
|
||||
record = Data()
|
||||
record.custom_attr = "custom_value"
|
||||
assert record.custom_attr == "custom_value"
|
||||
del record.custom_attr
|
||||
|
|
@ -63,7 +62,7 @@ def test_custom_attribute_get_set_del():
|
|||
def test_deep_copy():
|
||||
import copy
|
||||
|
||||
record1 = Record(data={"text": "Hello", "number": 10})
|
||||
record1 = Data(data={"text": "Hello", "number": 10})
|
||||
record2 = copy.deepcopy(record1)
|
||||
assert record2.text == "Hello"
|
||||
assert record2.number == 10
|
||||
|
|
@ -72,20 +71,20 @@ def test_deep_copy():
|
|||
|
||||
|
||||
def test_custom_attribute_setting_and_getting():
|
||||
record = Record()
|
||||
record = Data()
|
||||
record.dynamic_attribute = "Dynamic Value"
|
||||
assert record.dynamic_attribute == "Dynamic Value"
|
||||
|
||||
|
||||
def test_str_and_dir_methods():
|
||||
record = Record(text_key="text", data={"text": "Test Text", "key": "value"})
|
||||
record = Data(text_key="text", data={"text": "Test Text", "key": "value"})
|
||||
assert "Test Text" in str(record)
|
||||
assert "key" in dir(record)
|
||||
assert "data" in dir(record)
|
||||
|
||||
|
||||
def test_dir_includes_data_keys():
|
||||
record = Record(data={"text": "Hello", "new_attr": "value"})
|
||||
record = Data(data={"text": "Hello", "new_attr": "value"})
|
||||
dir_output = dir(record)
|
||||
|
||||
# Check for standard attributes
|
||||
|
|
@ -103,7 +102,7 @@ def test_dir_includes_data_keys():
|
|||
|
||||
|
||||
def test_dir_reflects_attribute_deletion():
|
||||
record = Record(data={"removable": "I can be removed"})
|
||||
record = Data(data={"removable": "I can be removed"})
|
||||
assert "removable" in dir(record)
|
||||
|
||||
# Delete the attribute and check again
|
||||
|
|
@ -113,27 +112,27 @@ def test_dir_reflects_attribute_deletion():
|
|||
|
||||
def test_get_text_with_text_key():
|
||||
data = {"text": "Hello, World!"}
|
||||
schema = Record(data=data, text_key="text", default_value="default")
|
||||
schema = Data(data=data, text_key="text", default_value="default")
|
||||
result = schema.get_text()
|
||||
assert result == "Hello, World!"
|
||||
|
||||
|
||||
def test_get_text_without_text_key():
|
||||
data = {"other_key": "Hello, World!"}
|
||||
schema = Record(data=data, text_key="text", default_value="default")
|
||||
schema = Data(data=data, text_key="text", default_value="default")
|
||||
result = schema.get_text()
|
||||
assert result == "default"
|
||||
|
||||
|
||||
def test_get_text_with_empty_data():
|
||||
data = {}
|
||||
schema = Record(data=data, text_key="text", default_value="default")
|
||||
schema = Data(data=data, text_key="text", default_value="default")
|
||||
result = schema.get_text()
|
||||
assert result == "default"
|
||||
|
||||
|
||||
def test_get_text_with_none_data():
|
||||
data = None
|
||||
schema = Record(data=data, text_key="text", default_value="default")
|
||||
schema = Data(data=data, text_key="text", default_value="default")
|
||||
result = schema.get_text()
|
||||
assert result == "default"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue