ocr improved
This commit is contained in:
124
test_rename_workspace.py
Normal file
124
test_rename_workspace.py
Normal file
@@ -0,0 +1,124 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
Test workspace rename functionality.
|
||||
"""
|
||||
import sys
|
||||
import os
|
||||
import asyncio
|
||||
from pathlib import Path
|
||||
|
||||
# Add LightRAG-main to path
|
||||
sys.path.insert(0, 'LightRAG-main')
|
||||
|
||||
from lightrag.api.workspace_manager import WorkspaceManager
|
||||
from lightrag.api.config import global_args
|
||||
|
||||
# Mock args
|
||||
class Args:
|
||||
working_dir = 'rag_storage_test'
|
||||
input_dir = 'inputs_test'
|
||||
workspace = ''
|
||||
llm_binding = 'openai'
|
||||
embedding_binding = 'openai'
|
||||
rerank_binding = 'null'
|
||||
llm_model = 'gpt-3.5-turbo'
|
||||
embedding_model = 'text-embedding-ada-002'
|
||||
embedding_dim = 1536
|
||||
llm_binding_host = None
|
||||
embedding_binding_host = None
|
||||
llm_binding_api_key = None
|
||||
embedding_binding_api_key = None
|
||||
rerank_binding_api_key = None
|
||||
rerank_model = None
|
||||
rerank_binding_host = None
|
||||
max_async = 1
|
||||
summary_max_tokens = 100
|
||||
summary_context_size = 100
|
||||
chunk_size = 512
|
||||
chunk_overlap_size = 50
|
||||
kv_storage = 'sqlite'
|
||||
graph_storage = 'sqlite'
|
||||
vector_storage = 'qdrant'
|
||||
doc_status_storage = 'sqlite'
|
||||
enable_llm_cache_for_extract = False
|
||||
enable_llm_cache = False
|
||||
max_graph_nodes = 1000
|
||||
cosine_threshold = 0.7
|
||||
min_rerank_score = 0.0
|
||||
related_chunk_number = 5
|
||||
embedding_func_max_async = 1
|
||||
embedding_batch_num = 1
|
||||
max_parallel_insert = 1
|
||||
summary_language = 'en'
|
||||
force_llm_summary_on_merge = False
|
||||
entity_types = ''
|
||||
|
||||
async def test_rename():
|
||||
# Clean up previous test directories
|
||||
import shutil
|
||||
if Path('rag_storage_test').exists():
|
||||
shutil.rmtree('rag_storage_test')
|
||||
if Path('inputs_test').exists():
|
||||
shutil.rmtree('inputs_test')
|
||||
|
||||
args = Args()
|
||||
manager = WorkspaceManager(args)
|
||||
|
||||
print("Creating workspace 'test_old'...")
|
||||
manager.create_workspace('test_old')
|
||||
|
||||
# Verify it exists
|
||||
assert manager.workspace_exists('test_old')
|
||||
print("Workspace created.")
|
||||
|
||||
# Rename
|
||||
print("Renaming 'test_old' to 'test_new'...")
|
||||
await manager.rename_workspace('test_old', 'test_new')
|
||||
|
||||
# Verify old doesn't exist
|
||||
assert not manager.workspace_exists('test_old')
|
||||
assert manager.workspace_exists('test_new')
|
||||
print("Rename successful.")
|
||||
|
||||
# List workspaces
|
||||
workspaces = manager.list_workspaces()
|
||||
print(f"Workspaces: {workspaces}")
|
||||
assert 'test_new' in workspaces
|
||||
|
||||
# Clean up
|
||||
await manager.delete_workspace('test_new')
|
||||
print("Cleanup done.")
|
||||
|
||||
# Test error cases
|
||||
print("\nTesting error cases...")
|
||||
# Rename non-existent workspace
|
||||
try:
|
||||
await manager.rename_workspace('nonexistent', 'new')
|
||||
print("ERROR: Should have raised ValueError")
|
||||
except ValueError as e:
|
||||
print(f"Expected error: {e}")
|
||||
|
||||
# Rename to existing workspace
|
||||
manager.create_workspace('existing')
|
||||
manager.create_workspace('other')
|
||||
try:
|
||||
await manager.rename_workspace('existing', 'other')
|
||||
print("ERROR: Should have raised ValueError")
|
||||
except ValueError as e:
|
||||
print(f"Expected error: {e}")
|
||||
|
||||
# Invalid new name
|
||||
try:
|
||||
await manager.rename_workspace('existing', 'invalid name!')
|
||||
print("ERROR: Should have raised ValueError")
|
||||
except ValueError as e:
|
||||
print(f"Expected error: {e}")
|
||||
|
||||
# Clean up
|
||||
await manager.delete_workspace('existing')
|
||||
await manager.delete_workspace('other')
|
||||
|
||||
print("\nAll tests passed!")
|
||||
|
||||
if __name__ == '__main__':
|
||||
asyncio.run(test_rename())
|
||||
Reference in New Issue
Block a user