first commit
This commit is contained in:
@@ -0,0 +1,81 @@
|
||||
import sys
|
||||
import os
|
||||
|
||||
sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
|
||||
|
||||
import asyncio
|
||||
import tempfile
|
||||
import os
|
||||
from context.sketch_pad import RedisFileSketchPadBackend
|
||||
from config.config import get_config
|
||||
|
||||
|
||||
def _create_sketch_pad(sketch_pad_id: str, file_path: str) -> RedisFileSketchPadBackend:
|
||||
config = get_config()
|
||||
return RedisFileSketchPadBackend(
|
||||
sketch_pad_id=sketch_pad_id,
|
||||
redis_host=config.REDIS_HOST,
|
||||
redis_port=int(config.REDIS_PORT),
|
||||
redis_db=int(config.REDIS_DB),
|
||||
file_path=file_path,
|
||||
)
|
||||
|
||||
|
||||
async def test_basic_operations():
|
||||
"""Test basic operations."""
|
||||
print("=== SketchPad Basic Operation Test ===")
|
||||
|
||||
# Create a temporary file.
|
||||
with tempfile.NamedTemporaryFile(mode="w", suffix=".json", delete=False) as f:
|
||||
temp_file = f.name
|
||||
|
||||
try:
|
||||
# Initialize SketchPad.
|
||||
sketch_pad = _create_sketch_pad("test_pad", temp_file)
|
||||
|
||||
# Set items.
|
||||
print("1. Setting items...")
|
||||
await sketch_pad.set_item(
|
||||
key="user_config",
|
||||
value={"theme": "dark", "lang": "en"},
|
||||
summary="User configuration",
|
||||
tags={"config", "user"},
|
||||
)
|
||||
|
||||
await sketch_pad.set_item(
|
||||
key="temp_data", value="temporary data", summary="temporary storage", tags={"temp"}, ttl=5
|
||||
)
|
||||
|
||||
# Get items.
|
||||
print("2. Getting items...")
|
||||
item = sketch_pad.get_item("user_config")
|
||||
print(f" user_config: {item.value if item else 'Not found'}")
|
||||
|
||||
# Check existence.
|
||||
print("3. Checking existence...")
|
||||
print(f" user_config exists: {sketch_pad.exists('user_config')}")
|
||||
|
||||
# Get all keys.
|
||||
print("4. Getting all keys...")
|
||||
keys = sketch_pad.keys()
|
||||
print(f" All keys: {keys}")
|
||||
|
||||
# Search by tag.
|
||||
print("5. Searching by tag...")
|
||||
config_items = sketch_pad.search_by_tags({"config"})
|
||||
print(f" Configuration item count: {len(config_items)}")
|
||||
|
||||
# Statistics.
|
||||
print("6. Statistics...")
|
||||
stats = sketch_pad.get_statistics()
|
||||
print(f" Total item count: {stats.total_items}")
|
||||
|
||||
print("=== Test Complete ===")
|
||||
|
||||
finally:
|
||||
if os.path.exists(temp_file):
|
||||
os.unlink(temp_file)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
asyncio.run(test_basic_operations())
|
||||
Reference in New Issue
Block a user