Files
penpot-mcp-server/tests/test_cache.py
chema cc9d0312e3 Add test_credentials.py for Penpot API credential verification and project listing
- Introduced a new script, `test_credentials.py`, to verify Penpot API credentials and list associated projects.
- The script loads environment variables, checks for required credentials, and attempts to authenticate with the Penpot API.
- Added functionality to fetch and display project details and files, including error handling for authentication and project retrieval.
- Updated `PenpotAPI` class to include a User-Agent header and improved error handling during profile retrieval.
- Minor adjustments in import order across various modules for consistency.
2025-06-29 18:22:23 +02:00

89 lines
2.3 KiB
Python

"""
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