Initial commit: Penpot MCP Server - Complete AI-powered design workflow automation with MCP protocol, Penpot API integration, Claude AI support, CLI tools, and comprehensive documentation
This commit is contained in:
86
tests/test_cache.py
Normal file
86
tests/test_cache.py
Normal file
@@ -0,0 +1,86 @@
|
||||
"""
|
||||
Tests for the memory caching functionality.
|
||||
"""
|
||||
|
||||
import time
|
||||
import pytest
|
||||
from penpot_mcp.utils.cache import MemoryCache
|
||||
|
||||
@pytest.fixture
|
||||
def memory_cache():
|
||||
"""Create a MemoryCache instance with a short TTL for testing."""
|
||||
return MemoryCache(ttl_seconds=2)
|
||||
|
||||
def test_cache_set_get(memory_cache):
|
||||
"""Test setting and getting a file from cache."""
|
||||
test_data = {"test": "data"}
|
||||
file_id = "test123"
|
||||
|
||||
# Set data in cache
|
||||
memory_cache.set(file_id, test_data)
|
||||
|
||||
# Get data from cache
|
||||
cached_data = memory_cache.get(file_id)
|
||||
assert cached_data == test_data
|
||||
|
||||
def test_cache_expiration(memory_cache):
|
||||
"""Test that cached files expire after TTL."""
|
||||
test_data = {"test": "data"}
|
||||
file_id = "test123"
|
||||
|
||||
# Set data in cache
|
||||
memory_cache.set(file_id, test_data)
|
||||
|
||||
# Data should be available immediately
|
||||
assert memory_cache.get(file_id) == test_data
|
||||
|
||||
# Wait for cache to expire
|
||||
time.sleep(3)
|
||||
|
||||
# Data should be expired
|
||||
assert memory_cache.get(file_id) is None
|
||||
|
||||
def test_cache_clear(memory_cache):
|
||||
"""Test clearing the cache."""
|
||||
test_data = {"test": "data"}
|
||||
file_id = "test123"
|
||||
|
||||
# Set data in cache
|
||||
memory_cache.set(file_id, test_data)
|
||||
|
||||
# Verify data is cached
|
||||
assert memory_cache.get(file_id) == test_data
|
||||
|
||||
# Clear cache
|
||||
memory_cache.clear()
|
||||
|
||||
# Verify data is gone
|
||||
assert memory_cache.get(file_id) is None
|
||||
|
||||
def test_get_all_cached_files(memory_cache):
|
||||
"""Test getting all cached files."""
|
||||
test_data1 = {"test": "data1"}
|
||||
test_data2 = {"test": "data2"}
|
||||
|
||||
# Set multiple files in cache
|
||||
memory_cache.set("file1", test_data1)
|
||||
memory_cache.set("file2", test_data2)
|
||||
|
||||
# Get all cached files
|
||||
all_files = memory_cache.get_all_cached_files()
|
||||
|
||||
# Verify all files are present
|
||||
assert len(all_files) == 2
|
||||
assert all_files["file1"] == test_data1
|
||||
assert all_files["file2"] == test_data2
|
||||
|
||||
# Wait for cache to expire
|
||||
time.sleep(3)
|
||||
|
||||
# Verify expired files are removed
|
||||
all_files = memory_cache.get_all_cached_files()
|
||||
assert len(all_files) == 0
|
||||
|
||||
def test_cache_nonexistent_file(memory_cache):
|
||||
"""Test getting a nonexistent file from cache."""
|
||||
assert memory_cache.get("nonexistent") is None
|
||||
Reference in New Issue
Block a user