68 lines
2.0 KiB
Python
68 lines
2.0 KiB
Python
"""Tests per a l'API d'administració."""
|
|
import pytest
|
|
from unittest.mock import MagicMock, patch
|
|
|
|
|
|
@pytest.fixture
|
|
def app(in_memory_db):
|
|
import backend.app.db as db_module
|
|
saved_engine = db_module._engine
|
|
saved_session = db_module._SessionLocal
|
|
|
|
def _noop(url):
|
|
db_module._engine = saved_engine
|
|
db_module._SessionLocal = saved_session
|
|
|
|
with patch('backend.app.db.init_db', side_effect=_noop):
|
|
from backend.app import create_app
|
|
application = create_app()
|
|
|
|
application.config['TESTING'] = True
|
|
application.extensions['storage'] = MagicMock()
|
|
db_module._engine = saved_engine
|
|
db_module._SessionLocal = saved_session
|
|
return application
|
|
|
|
|
|
@pytest.fixture
|
|
def client(app):
|
|
with app.test_client() as c:
|
|
yield c
|
|
|
|
|
|
def test_get_config_empty(client, in_memory_db):
|
|
res = client.get('/api/admin/config')
|
|
assert res.status_code == 200
|
|
data = res.get_json()
|
|
assert data['success'] is True
|
|
assert isinstance(data['data'], list)
|
|
|
|
|
|
def test_patch_config(client, in_memory_db):
|
|
from backend.app.models.db_models import SystemConfigModel
|
|
from backend.app.db import get_session
|
|
with get_session() as db:
|
|
db.add(SystemConfigModel(
|
|
key='llm.model_name', value='qwen-plus',
|
|
value_type='string', group='llm',
|
|
label='Model LLM', description='Nom del model LLM principal',
|
|
is_secret=False
|
|
))
|
|
db.commit()
|
|
|
|
res = client.patch('/api/admin/config', json={'llm.model_name': 'gpt-4o'})
|
|
assert res.status_code == 200
|
|
|
|
res2 = client.get('/api/admin/config')
|
|
entries = res2.get_json()['data']
|
|
entry = next(e for e in entries if e['key'] == 'llm.model_name')
|
|
assert entry['value'] == 'gpt-4o'
|
|
|
|
|
|
def test_get_executions_empty(client, in_memory_db):
|
|
res = client.get('/api/admin/executions')
|
|
assert res.status_code == 200
|
|
data = res.get_json()
|
|
assert data['success'] is True
|
|
assert data['data'] == []
|