hidden_combos_test.pyโข2.31 kB
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
๐งช ChillMCP ํ๋ ์ฝค๋ณด ํ
์คํธ (์ค๊ฐ ์ํ ์ถ๋ ฅ ๋ฒ์ )
"""
import asyncio
import sys
import os
# โ
ํ๋ก์ ํธ ๋ฃจํธ ๊ฒฝ๋ก ์ถ๊ฐ
sys.path.append(os.path.dirname(os.path.dirname(os.path.dirname(__file__))))
# โ
FastMCP dummy ํจ์น (ํ
์คํธ ์ ์ฉ)
import fastmcp
def dummy_tool(self=None, *args, **kwargs):
"""FastMCP.tool() ๋์ฒด์ฉ ๋๋ฏธ ๋ฐ์ฝ๋ ์ดํฐ"""
def decorator(fn):
return fn
return decorator
fastmcp.FastMCP.tool = dummy_tool
# โ
์ดํ core import
from core.server import ServerState
from core import tools
# ๐งฉ ์ํ๋ฅผ ๋ณด๊ธฐ ์ข๊ฒ ์ถ๋ ฅํ๋ ํจ์
def print_state(state: ServerState, tool_name: str, i: int):
print(f" {tool_name} {i+1}ํ์ฐจ")
print(f" - Stress Level: {state.stress_level}")
print(f" - Boss Alert: {state.boss_alert_level}")
combo = state.combo_count.get(tool_name, 0)
print(f" - Combo Count: {combo}")
print("-" * 40)
# โ ์ปคํผ 7์ฐ์ ํ
์คํธ
async def test_coffee_combo():
print("\n=== ์ปคํผ 7์ฐ์ ํ
์คํธ ===")
state = ServerState(10, 3)
tools.initialize_state(state)
result = ""
for i in range(7):
result = await tools.coffee_mission()
print_state(state, "coffee_mission", i)
await asyncio.sleep(0.3) # ์ค๊ฐ ์ง์ฐ์ผ๋ก ๋ณด๊ธฐ ํธํ๊ฒ
print("\n--- ๋ง์ง๋ง ๊ฒฐ๊ณผ ---")
print(result)
assert any(k in result for k in ["๋ฐฐํ", "ํด๊ทผ"]), "์ปคํผ ์ฝค๋ณด ๋ฏธ๋ฐ๋"
print("์ปคํผ ์ฝค๋ณด ์ ์ ์๋!\n")
# ๐ค ๋ฅ์ฝํน 7์ฐ์ ํ
์คํธ
async def test_thinking_combo():
print("\n=== ๋ฅ์ฝํน 7์ฐ์ ํ
์คํธ ===")
state = ServerState(60, 5)
tools.initialize_state(state)
result = ""
for i in range(7):
result = await tools.deep_thinking()
print_state(state, "deep_thinking", i)
await asyncio.sleep(0.3)
print("\n--- ๋ง์ง๋ง ๊ฒฐ๊ณผ ---")
print(result)
assert any(k in result for k in ["์์ฌ", "๊ฒฝ๊ณ ", "์คํธ๋ ์ค"]), "๋ฅ์ฝํน ์ฝค๋ณด ๋ฏธ๋ฐ๋"
print("๋ฅ์ฝํน ์ฝค๋ณด ์ ์ ์๋!\n")
async def main():
await test_coffee_combo()
await test_thinking_combo()
print("๋ชจ๋ ํ
์คํธ ํต๊ณผ!")
if __name__ == "__main__":
asyncio.run(main())