Skip to main content
Glama

Beijing Time MCP Server

by archerlliu
MIT License
test_server.py4.09 kB
""" 测试北京时间MCP服务器 """ import json from datetime import datetime import pytest from mcp.types import CallToolResult, TextContent from beijing_time_mcp.server import BeijingTimeServer class TestBeijingTimeServer: """北京时间服务器测试类""" def setup_method(self): """测试前设置""" self.server = BeijingTimeServer() @pytest.mark.asyncio async def test_get_beijing_time_default_format(self): """测试获取北京时间(默认格式)""" # 调用工具 result = await self.server._get_beijing_time({}) # 验证结果 assert isinstance(result, CallToolResult) assert len(result.content) == 1 assert isinstance(result.content[0], TextContent) # 解析响应数据 data = json.loads(result.content[0].text) assert "time" in data assert "timezone" in data assert "timestamp" in data assert "iso_format" in data # 验证时区 assert "Asia/Shanghai" in data["timezone"] assert "CST" in data["timezone"] # 验证时间格式 time_str = data["time"] datetime.strptime(time_str, "%Y-%m-%d %H:%M:%S") @pytest.mark.asyncio async def test_get_beijing_time_custom_format(self): """测试获取北京时间(自定义格式)""" # 测试中文格式 result = await self.server._get_beijing_time( {"format": "%Y年%m月%d日 %H时%M分%S秒"} ) data = json.loads(result.content[0].text) time_str = data["time"] assert "年" in time_str and "月" in time_str and "日" in time_str assert "时" in time_str and "分" in time_str and "秒" in time_str # 测试日期格式 result = await self.server._get_beijing_time({"format": "%Y-%m-%d"}) data = json.loads(result.content[0].text) time_str = data["time"] datetime.strptime(time_str, "%Y-%m-%d") # 测试时间格式 result = await self.server._get_beijing_time({"format": "%H:%M:%S"}) data = json.loads(result.content[0].text) time_str = data["time"] datetime.strptime(time_str, "%H:%M:%S") @pytest.mark.asyncio async def test_get_beijing_time_complete_data(self): """测试获取北京时间完整数据""" result = await self.server._get_beijing_time({}) data = json.loads(result.content[0].text) # 验证所有字段 required_fields = [ "time", "timezone", "timestamp", "iso_format", "utc_offset", "day_of_week", "day_of_week_cn", "year", "month", "day", "hour", "minute", "second", ] for field in required_fields: assert field in data, f"Missing field: {field}" # 验证数据类型 assert isinstance(data["timestamp"], int) assert isinstance(data["year"], int) assert isinstance(data["month"], int) assert isinstance(data["day"], int) assert isinstance(data["hour"], int) assert isinstance(data["minute"], int) assert isinstance(data["second"], int) # 验证星期几 assert data["day_of_week_cn"] in [ "星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期日", ] def test_get_chinese_day_of_week(self): """测试获取中文星期几""" test_cases = [ (0, "星期一"), (1, "星期二"), (2, "星期三"), (3, "星期四"), (4, "星期五"), (5, "星期六"), (6, "星期日"), ] for weekday, expected in test_cases: result = self.server._get_chinese_day_of_week(weekday) assert result == expected if __name__ == "__main__": pytest.main([__file__, "-v"])

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/archerlliu/time-mcp'

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