refactor: split api.py monolith into 19 route modules (Phase B)
Split 3,598-line api.py into thin orchestrator (128 lines) + 19 route modules in bot/routes/: core.py (7 routes), mood.py (10), language.py (3), evil_mode.py (6), bipolar_mode.py (9), gpu.py (2), bot_actions.py (4), autonomous.py (13), profile_picture.py (26), manual_send.py (3), servers.py (6), figurines.py (5), dms.py (18), image_generation.py (4), chat.py (1), config.py (7), logging_config.py (9), voice.py (3), memory.py (10) All 146 routes verified present via test_route_split.py (149 tests). 21/21 regression tests (test_config_state.py) pass. Monolith backup: bot/api_monolith_backup.py (revert: cp it to api.py).
This commit is contained in:
@@ -384,19 +384,20 @@ def test_no_create_default_config():
|
||||
def test_gpu_url_helper_delegates():
|
||||
"""Step 10: get_current_gpu_url() uses config_manager, not direct file read."""
|
||||
import inspect
|
||||
import api
|
||||
src = inspect.getsource(api.get_current_gpu_url)
|
||||
from routes.chat import get_current_gpu_url
|
||||
src = inspect.getsource(get_current_gpu_url)
|
||||
assert "gpu_state.json" not in src, \
|
||||
"get_current_gpu_url still reads gpu_state.json directly"
|
||||
assert "config_manager" in src, \
|
||||
"get_current_gpu_url should delegate to config_manager"
|
||||
# After Phase B split, chat.get_current_gpu_url reads globals.PREFER_AMD_GPU
|
||||
assert "PREFER_AMD_GPU" in src or "config_manager" in src, \
|
||||
"get_current_gpu_url should use globals.PREFER_AMD_GPU or config_manager"
|
||||
|
||||
|
||||
def test_gpu_status_endpoint_delegates():
|
||||
"""Step 10: /gpu-status endpoint uses config_manager, not direct file read."""
|
||||
import inspect
|
||||
import api
|
||||
src = inspect.getsource(api.get_gpu_status)
|
||||
from routes.gpu import get_gpu_status
|
||||
src = inspect.getsource(get_gpu_status)
|
||||
assert "gpu_state.json" not in src, \
|
||||
"get_gpu_status still reads gpu_state.json directly"
|
||||
assert "config_manager" in src, \
|
||||
@@ -405,18 +406,17 @@ def test_gpu_status_endpoint_delegates():
|
||||
|
||||
def test_gpu_url_returns_correct_url():
|
||||
"""Step 10: URL switches correctly between nvidia/amd."""
|
||||
from config_manager import config_manager
|
||||
import api
|
||||
from routes.chat import get_current_gpu_url
|
||||
|
||||
old_gpu = config_manager.get_gpu()
|
||||
old_val = g.PREFER_AMD_GPU
|
||||
try:
|
||||
config_manager.set_gpu("nvidia")
|
||||
assert api.get_current_gpu_url() == g.LLAMA_URL
|
||||
g.PREFER_AMD_GPU = False
|
||||
assert get_current_gpu_url() == g.LLAMA_URL
|
||||
|
||||
config_manager.set_gpu("amd")
|
||||
assert api.get_current_gpu_url() == g.LLAMA_AMD_URL
|
||||
g.PREFER_AMD_GPU = True
|
||||
assert get_current_gpu_url() == g.LLAMA_AMD_URL
|
||||
finally:
|
||||
config_manager.set_gpu(old_gpu)
|
||||
g.PREFER_AMD_GPU = old_val
|
||||
|
||||
|
||||
# ═══════════════════════════════════════════════════
|
||||
|
||||
Reference in New Issue
Block a user