Spaces:
				
			
			
	
			
			
		Running
		
			on 
			
			Zero
	
	
	
			
			
	
	
	
	
		
		
		Running
		
			on 
			
			Zero
	| import pytest | |
| from unittest.mock import MagicMock | |
| from api_server.services.file_service import FileService | |
| def mock_file_system_ops(): | |
| return MagicMock() | |
| def file_service(mock_file_system_ops): | |
| allowed_directories = { | |
| "models": "/path/to/models", | |
| "user": "/path/to/user", | |
| "output": "/path/to/output" | |
| } | |
| return FileService(allowed_directories, file_system_ops=mock_file_system_ops) | |
| def test_list_files_valid_directory(file_service, mock_file_system_ops): | |
| mock_file_system_ops.walk_directory.return_value = [ | |
| {"name": "file1.txt", "path": "file1.txt", "type": "file", "size": 100}, | |
| {"name": "dir1", "path": "dir1", "type": "directory"} | |
| ] | |
| result = file_service.list_files("models") | |
| assert len(result) == 2 | |
| assert result[0]["name"] == "file1.txt" | |
| assert result[1]["name"] == "dir1" | |
| mock_file_system_ops.walk_directory.assert_called_once_with("/path/to/models") | |
| def test_list_files_invalid_directory(file_service): | |
| # Does not support walking directories outside of the allowed directories | |
| with pytest.raises(ValueError, match="Invalid directory key"): | |
| file_service.list_files("invalid_key") | |
| def test_list_files_empty_directory(file_service, mock_file_system_ops): | |
| mock_file_system_ops.walk_directory.return_value = [] | |
| result = file_service.list_files("models") | |
| assert len(result) == 0 | |
| mock_file_system_ops.walk_directory.assert_called_once_with("/path/to/models") | |
| def test_list_files_all_allowed_directories(file_service, mock_file_system_ops, directory_key): | |
| mock_file_system_ops.walk_directory.return_value = [ | |
| {"name": f"file_{directory_key}.txt", "path": f"file_{directory_key}.txt", "type": "file", "size": 100} | |
| ] | |
| result = file_service.list_files(directory_key) | |
| assert len(result) == 1 | |
| assert result[0]["name"] == f"file_{directory_key}.txt" | |
| mock_file_system_ops.walk_directory.assert_called_once_with(f"/path/to/{directory_key}") | 
