| 
					
				 | 
			
			
				@@ -2,11 +2,11 @@ from unittest.mock import MagicMock 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import pytest 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-from core.file import File 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-from core.file.models import FileTransferMethod, FileType 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+from core.file import File, FileTransferMethod, FileType 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 from core.variables import ArrayFileSegment 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 from core.workflow.nodes.list_operator.entities import FilterBy, FilterCondition, Limit, ListOperatorNodeData, OrderBy 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-from core.workflow.nodes.list_operator.node import ListOperatorNode 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+from core.workflow.nodes.list_operator.exc import InvalidKeyError 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+from core.workflow.nodes.list_operator.node import ListOperatorNode, _get_file_extract_string_func 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 from models.workflow import WorkflowNodeExecutionStatus 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -109,3 +109,46 @@ def test_filter_files_by_type(list_operator_node): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         assert expected_file["tenant_id"] == result_file.tenant_id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         assert expected_file["transfer_method"] == result_file.transfer_method 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         assert expected_file["related_id"] == result_file.related_id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+def test_get_file_extract_string_func(): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    # Create a File object 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    file = File( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        tenant_id="test_tenant", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        type=FileType.DOCUMENT, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        transfer_method=FileTransferMethod.LOCAL_FILE, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        filename="test_file.txt", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        extension=".txt", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        mime_type="text/plain", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        remote_url="https://example.com/test_file.txt", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        related_id="test_related_id", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    # Test each case 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    assert _get_file_extract_string_func(key="name")(file) == "test_file.txt" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    assert _get_file_extract_string_func(key="type")(file) == "document" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    assert _get_file_extract_string_func(key="extension")(file) == ".txt" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    assert _get_file_extract_string_func(key="mime_type")(file) == "text/plain" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    assert _get_file_extract_string_func(key="transfer_method")(file) == "local_file" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    assert _get_file_extract_string_func(key="url")(file) == "https://example.com/test_file.txt" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    # Test with empty values 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    empty_file = File( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        tenant_id="test_tenant", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        type=FileType.DOCUMENT, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        transfer_method=FileTransferMethod.LOCAL_FILE, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        filename=None, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        extension=None, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        mime_type=None, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        remote_url=None, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        related_id="test_related_id", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    assert _get_file_extract_string_func(key="name")(empty_file) == "" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    assert _get_file_extract_string_func(key="extension")(empty_file) == "" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    assert _get_file_extract_string_func(key="mime_type")(empty_file) == "" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    assert _get_file_extract_string_func(key="url")(empty_file) == "" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    # Test invalid key 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    with pytest.raises(InvalidKeyError): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        _get_file_extract_string_func(key="invalid_key") 
			 |