Spaces:
Build error
Build error
File size: 2,516 Bytes
d483b58 4e19890 8f5abd4 4e19890 5294c4d 4e19890 8f5abd4 4e19890 8f5abd4 4e19890 8f5abd4 4e19890 8f5abd4 b0b88cc 4e19890 8f5abd4 4e19890 8f5abd4 4e19890 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 | from unittest.mock import MagicMock, patch
import pytest
from animetix.containers import get_container
from core.domain.entities.ai_schemas import (
InferenceMetadata,
InferenceResponse,
TokenLogProb,
)
# The requests traverse the full middleware stack (session/profile lookups),
# which needs DB access even with the container and billing mocked out.
pytestmark = pytest.mark.django_db
def test_neural_diagnostics_api_success(api_client):
url = "/api/v1/labs/diagnostics/"
payload = {"prompt": "Why is Naruto a ninja?"}
# GPU feature → login required + consumes Berrix (mocked so no wallet needed).
api_client.force_authenticate(user=MagicMock(id=1))
mock_inference = MagicMock()
mock_xai = MagicMock()
# Mock Inference Response
mock_response = InferenceResponse(
text="Naruto trained hard.",
metadata=InferenceMetadata(
logprobs=[TokenLogProb(token="Naruto", logprob=-0.1)]
),
)
mock_inference.generate.return_value = mock_response
# Mock XAI Report
mock_report = {
"avg_entropy": 0.5,
"confidence_score": 0.9,
"per_token_diagnostics": [],
"logit_lens_trajectory": [],
}
mock_xai.get_diagnostics_report.return_value = mock_report
container = get_container()
container.inference.inference_engine.override(mock_inference)
container.core.xai_service.override(mock_xai)
try:
with patch("animetix.api.labs.singularity.deduct_berrix"):
# We use the string URL because the name might not be registered yet
response = api_client.post(url, payload, format="json")
finally:
container.inference.inference_engine.reset_last_overriding()
container.core.xai_service.reset_last_overriding()
assert response.status_code == 200
assert "avg_entropy" in response.data
assert response.data["avg_entropy"] == 0.5
# Verify calls
mock_inference.generate.assert_called_once()
_, kwargs = mock_inference.generate.call_args
assert kwargs.get("include_logprobs") is True
mock_xai.get_diagnostics_report.assert_called_once_with(
payload["prompt"], mock_response
)
def test_neural_diagnostics_api_missing_prompt(api_client):
url = "/api/v1/labs/diagnostics/"
api_client.force_authenticate(user=MagicMock(id=1)) # login required (GPU feature)
response = api_client.post(url, {}, format="json")
assert response.status_code == 400
assert "error" in response.data
|