Skip to main content
Glama
test_cookie_storage.py3.71 kB
import pytest from unittest.mock import Mock, patch, mock_open from pathlib import Path import json from xiaohongshu_mcp_python.storage.cookie_storage import CookieStorage @pytest.mark.unit class TestCookieStorage: """CookieStorage 核心业务流程测试""" def test_init_default(self): """测试默认初始化""" storage = CookieStorage() assert storage.cookie_path.name == "cookies.json" def test_init_custom_path(self): """测试自定义路径初始化""" custom_path = Path("/tmp/custom_cookies.json") storage = CookieStorage(cookie_path=custom_path) assert storage.cookie_path == custom_path @pytest.mark.asyncio async def test_load_cookies_success(self): """测试成功加载cookies""" storage = CookieStorage() test_cookies = [{"name": "test", "value": "value"}] with patch("builtins.open", mock_open(read_data=json.dumps(test_cookies))): with patch.object(storage.cookie_path, "exists", return_value=True): cookies = await storage.load_cookies() assert cookies == test_cookies @pytest.mark.asyncio async def test_load_cookies_not_exists(self): """测试加载不存在的cookies文件""" storage = CookieStorage() with patch.object(storage.cookie_path, "exists", return_value=False): cookies = await storage.load_cookies() assert cookies == [] @pytest.mark.asyncio async def test_save_cookies_success(self): """测试成功保存cookies""" storage = CookieStorage() test_cookies = [{"name": "test", "value": "value", "domain": ".test.com"}] with patch("builtins.open", mock_open()) as mock_file: with patch.object(storage.cookie_path.parent, "mkdir"): result = await storage.save_cookies(test_cookies) assert result is True mock_file.assert_called_once() def test_has_cookies_exists(self): """测试检查cookies文件存在""" storage = CookieStorage() with patch.object(storage.cookie_path, "exists", return_value=True): with patch.object(storage.cookie_path, "stat") as mock_stat: mock_stat.return_value.st_size = 100 assert storage.has_cookies() is True def test_has_cookies_not_exists(self): """测试检查cookies文件不存在""" storage = CookieStorage() with patch.object(storage.cookie_path, "exists", return_value=False): assert storage.has_cookies() is False def test_clear_cookies_success(self): """测试清除cookies""" storage = CookieStorage() with patch.object(storage.cookie_path, "exists", return_value=True): with patch.object(storage.cookie_path, "unlink") as mock_unlink: result = storage.clear_cookies() assert result is True mock_unlink.assert_called_once() def test_get_cookie_info_exists(self): """测试获取cookies信息""" storage = CookieStorage() with patch.object(storage.cookie_path, "exists", return_value=True): with patch.object(storage.cookie_path, "stat") as mock_stat: mock_stat.return_value.st_size = 1024 mock_stat.return_value.st_mtime = 1234567890.0 info = storage.get_cookie_info() assert info["exists"] is True assert info["size"] == 1024 assert info["modified"] == 1234567890.0

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/luyike221/xiaohongshu-mcp-python'

If you have feedback or need assistance with the MCP directory API, please join our Discord server