Add AI news risk analysis and dashboard
Analyze news revisions with independent model settings, evidence-backed risk ratings, event grouping, and rolling market outlooks. Add a default homepage, archival history, pending-result refresh, and isolated regression coverage. Keep analysis disabled until explicitly enabled. Require a separately authorized schema migration before deployment and preserve compatibility with the previous six-service instance.
This commit is contained in:
1 parent
549b818e95
commit
4f43ca8b57
31 files changed
+1521
-18
No files matched your search
@@ -51,3 +51,25 @@ def test_patch_provider_default_contract(trading, monkeypatch, initial, requeste
|
||||
asyncio.run(check())
|
||||
finally:
|
||||
app.dependency_overrides.clear()
|
||||
|
||||
|
||||
@pytest.mark.parametrize('enabled', [True, False])
|
||||
def test_delete_provider_handles_news_risk_reference(trading, monkeypatch, enabled):
|
||||
from fastapi import HTTPException
|
||||
from alphapulse.api import settings
|
||||
reference = SimpleNamespace(enabled=enabled, provider_id=1)
|
||||
provider = SimpleNamespace(id=1, is_default=False)
|
||||
session = SimpleNamespace(scalar=AsyncMock(return_value=reference), delete=AsyncMock(),
|
||||
flush=AsyncMock(), commit=AsyncMock())
|
||||
monkeypatch.setattr(settings, 'get_provider', AsyncMock(return_value=provider))
|
||||
if enabled:
|
||||
with pytest.raises(HTTPException) as error:
|
||||
asyncio.run(settings.delete_provider(1, session))
|
||||
assert error.value.status_code == 409
|
||||
session.delete.assert_not_awaited()
|
||||
assert reference.provider_id == 1
|
||||
else:
|
||||
asyncio.run(settings.delete_provider(1, session))
|
||||
assert reference.provider_id is None
|
||||
session.delete.assert_awaited_once_with(provider)
|
||||
session.commit.assert_awaited_once()
|
||||
Reference in new issue
Block a user