|  | @@ -0,0 +1,61 @@
 | 
	
		
			
				|  |  | +from core.app.app_config.features.file_upload.manager import FileUploadConfigManager
 | 
	
		
			
				|  |  | +from core.file.models import FileTransferMethod, FileUploadConfig, ImageConfig
 | 
	
		
			
				|  |  | +from core.model_runtime.entities.message_entities import ImagePromptMessageContent
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +def test_convert_with_vision():
 | 
	
		
			
				|  |  | +    config = {
 | 
	
		
			
				|  |  | +        "file_upload": {
 | 
	
		
			
				|  |  | +            "enabled": True,
 | 
	
		
			
				|  |  | +            "number_limits": 5,
 | 
	
		
			
				|  |  | +            "allowed_file_upload_methods": [FileTransferMethod.REMOTE_URL],
 | 
	
		
			
				|  |  | +            "image": {"detail": "high"},
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +    result = FileUploadConfigManager.convert(config, is_vision=True)
 | 
	
		
			
				|  |  | +    expected = FileUploadConfig(
 | 
	
		
			
				|  |  | +        image_config=ImageConfig(
 | 
	
		
			
				|  |  | +            number_limits=5,
 | 
	
		
			
				|  |  | +            transfer_methods=[FileTransferMethod.REMOTE_URL],
 | 
	
		
			
				|  |  | +            detail=ImagePromptMessageContent.DETAIL.HIGH,
 | 
	
		
			
				|  |  | +        )
 | 
	
		
			
				|  |  | +    )
 | 
	
		
			
				|  |  | +    assert result == expected
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +def test_convert_without_vision():
 | 
	
		
			
				|  |  | +    config = {
 | 
	
		
			
				|  |  | +        "file_upload": {
 | 
	
		
			
				|  |  | +            "enabled": True,
 | 
	
		
			
				|  |  | +            "number_limits": 5,
 | 
	
		
			
				|  |  | +            "allowed_file_upload_methods": [FileTransferMethod.REMOTE_URL],
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +    result = FileUploadConfigManager.convert(config, is_vision=False)
 | 
	
		
			
				|  |  | +    expected = FileUploadConfig(
 | 
	
		
			
				|  |  | +        image_config=ImageConfig(number_limits=5, transfer_methods=[FileTransferMethod.REMOTE_URL])
 | 
	
		
			
				|  |  | +    )
 | 
	
		
			
				|  |  | +    assert result == expected
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +def test_validate_and_set_defaults():
 | 
	
		
			
				|  |  | +    config = {}
 | 
	
		
			
				|  |  | +    result, keys = FileUploadConfigManager.validate_and_set_defaults(config)
 | 
	
		
			
				|  |  | +    assert "file_upload" in result
 | 
	
		
			
				|  |  | +    assert keys == ["file_upload"]
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +def test_validate_and_set_defaults_with_existing_config():
 | 
	
		
			
				|  |  | +    config = {
 | 
	
		
			
				|  |  | +        "file_upload": {
 | 
	
		
			
				|  |  | +            "enabled": True,
 | 
	
		
			
				|  |  | +            "number_limits": 5,
 | 
	
		
			
				|  |  | +            "allowed_file_upload_methods": [FileTransferMethod.REMOTE_URL],
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +    result, keys = FileUploadConfigManager.validate_and_set_defaults(config)
 | 
	
		
			
				|  |  | +    assert "file_upload" in result
 | 
	
		
			
				|  |  | +    assert keys == ["file_upload"]
 | 
	
		
			
				|  |  | +    assert result["file_upload"]["enabled"] is True
 | 
	
		
			
				|  |  | +    assert result["file_upload"]["number_limits"] == 5
 | 
	
		
			
				|  |  | +    assert result["file_upload"]["allowed_file_upload_methods"] == [FileTransferMethod.REMOTE_URL]
 |