Implement Manticore fully and re-theme
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
from django.test import TestCase
|
||||
from django.urls import reverse
|
||||
from unittest.mock import patch
|
||||
|
||||
from core.models import (
|
||||
AIRequest,
|
||||
@@ -63,6 +64,31 @@ class SystemDiagnosticsAPITests(TestCase):
|
||||
self.assertIn("missing_required_types", payload)
|
||||
self.assertIn("reaction_added", payload.get("missing_required_types") or [])
|
||||
|
||||
@patch("core.views.system.get_recent_event_rows")
|
||||
def test_event_ledger_smoke_api_can_use_manticore_source(self, mocked_rows):
|
||||
mocked_rows.return_value = [
|
||||
{
|
||||
"id": "",
|
||||
"user_id": int(self.user.id),
|
||||
"session_id": str(self.session.id),
|
||||
"ts": 1700000000000,
|
||||
"event_type": "message_created",
|
||||
"kind": "message_sent",
|
||||
"direction": "in",
|
||||
"origin_transport": "signal",
|
||||
"trace_id": "",
|
||||
}
|
||||
]
|
||||
response = self.client.get(
|
||||
reverse("system_event_ledger_smoke"),
|
||||
{"minutes": "999999", "service": "signal"},
|
||||
)
|
||||
self.assertEqual(200, response.status_code)
|
||||
payload = response.json()
|
||||
self.assertTrue(payload.get("ok"))
|
||||
self.assertEqual("manticore", payload.get("data_source"))
|
||||
self.assertEqual(1, int(payload.get("count") or 0))
|
||||
|
||||
def test_trace_diagnostics_includes_projection_shadow_links(self):
|
||||
trace_id = "trace-system-diag-1"
|
||||
event = ConversationEvent.objects.create(
|
||||
@@ -95,6 +121,44 @@ class SystemDiagnosticsAPITests(TestCase):
|
||||
str(events[0].get("projection_shadow_url") or ""),
|
||||
)
|
||||
|
||||
@patch("core.views.system.get_trace_event_rows")
|
||||
def test_trace_diagnostics_can_use_manticore_source(self, mocked_rows):
|
||||
mocked_rows.return_value = [
|
||||
{
|
||||
"id": "",
|
||||
"ts": 1700000001000,
|
||||
"event_type": "message_created",
|
||||
"direction": "in",
|
||||
"session_id": str(self.session.id),
|
||||
"origin_transport": "signal",
|
||||
"origin_message_id": "m2",
|
||||
"payload": {"trace_id": "trace-system-diag-m"},
|
||||
}
|
||||
]
|
||||
response = self.client.get(
|
||||
reverse("system_trace_diagnostics"),
|
||||
{"trace_id": "trace-system-diag-m"},
|
||||
)
|
||||
self.assertEqual(200, response.status_code)
|
||||
payload = response.json()
|
||||
self.assertTrue(payload.get("ok"))
|
||||
self.assertEqual("manticore", payload.get("data_source"))
|
||||
self.assertEqual(1, int(payload.get("count") or 0))
|
||||
self.assertIn(str(self.session.id), payload.get("related_session_ids") or [])
|
||||
|
||||
@patch("core.views.system.get_trace_ids")
|
||||
@patch("core.views.system.count_behavioral_events")
|
||||
def test_system_settings_page_includes_manticore_trace_ids(
|
||||
self, mocked_behavioral_count, mocked_trace_ids
|
||||
):
|
||||
mocked_behavioral_count.return_value = 7
|
||||
mocked_trace_ids.return_value = ["trace-from-manticore"]
|
||||
response = self.client.get(reverse("system_settings"))
|
||||
self.assertEqual(200, response.status_code)
|
||||
content = response.content.decode("utf-8")
|
||||
self.assertIn("trace-from-manticore", content)
|
||||
self.assertIn("Behavioral Events: 7", content)
|
||||
|
||||
def test_memory_search_status_and_query_api(self):
|
||||
request = AIRequest.objects.create(
|
||||
user=self.user,
|
||||
@@ -127,7 +191,18 @@ class SystemDiagnosticsAPITests(TestCase):
|
||||
first_hit = (query_payload.get("hits") or [{}])[0]
|
||||
self.assertEqual(str(memory.id), str(first_hit.get("memory_id") or ""))
|
||||
|
||||
def test_system_settings_page_renders_searchable_datalists(self):
|
||||
@patch("core.views.system.get_recent_event_rows")
|
||||
@patch("core.views.system.count_behavioral_events")
|
||||
def test_system_settings_page_renders_searchable_datalists(
|
||||
self, mocked_behavioral_count, mocked_recent_rows
|
||||
):
|
||||
mocked_behavioral_count.return_value = 3
|
||||
mocked_recent_rows.return_value = [
|
||||
{
|
||||
"event_type": "presence_available",
|
||||
"origin_transport": "whatsapp",
|
||||
}
|
||||
]
|
||||
ConversationEvent.objects.create(
|
||||
user=self.user,
|
||||
session=self.session,
|
||||
@@ -148,3 +223,5 @@ class SystemDiagnosticsAPITests(TestCase):
|
||||
self.assertIn('datalist id="diagnostics-event-type-options"', content)
|
||||
self.assertIn(str(self.session.id), content)
|
||||
self.assertIn("trace-system-diag-2", content)
|
||||
self.assertIn("whatsapp", content)
|
||||
self.assertIn("presence_available", content)
|
||||
|
||||
Reference in New Issue
Block a user