vnitx-audio / tests /test_feedback.py
arshan123's picture
Added AI_Voice_Detector
1cb0653
import base64
import json
from pathlib import Path
import pytest
def test_feedback_success_with_scoring(client, api_headers, app_module):
audio_bytes = b"\x01" * 400
payload = {
"label": "AI_GENERATED",
"audioFormat": "mp3",
"audioBase64": base64.b64encode(audio_bytes).decode("utf-8"),
"runDetection": True,
"metadata": {"source": "unit-test"}
}
response = client.post("/api/feedback", json=payload, headers=api_headers)
assert response.status_code == 200
data = response.get_json()
assert data["status"] == "success"
storage_dir = Path(app_module.FEEDBACK_STORAGE_DIR)
assert storage_dir.exists()
stored_files = list(storage_dir.rglob("*.mp3"))
assert stored_files, "Expected feedback audio file to be stored"
meta_files = list(storage_dir.rglob("*.json"))
assert meta_files, "Expected feedback metadata to be stored"
metadata = json.loads(meta_files[0].read_text(encoding="utf-8"))
assert metadata["label"] == "AI_GENERATED"
assert "physics_score" in metadata
assert "dl_score" in metadata
def test_feedback_invalid_label(client, api_headers, sample_audio_base64):
payload = {
"label": "UNKNOWN",
"audioFormat": "mp3",
"audioBase64": sample_audio_base64
}
response = client.post("/api/feedback", json=payload, headers=api_headers)
assert response.status_code == 400
def test_feedback_disabled(app_factory, sample_audio_base64, api_headers):
app_module = app_factory(ENABLE_FEEDBACK_STORAGE="false")
client = app_module.app.test_client()
payload = {
"label": "HUMAN",
"audioFormat": "mp3",
"audioBase64": sample_audio_base64
}
response = client.post("/api/feedback", json=payload, headers=api_headers)
assert response.status_code == 403
def test_feedback_too_large_payload(app_module, client, api_headers):
big_audio = base64.b64encode(b"\x00" * (app_module.FEEDBACK_MAX_BYTES + 10)).decode("utf-8")
payload = {
"label": "AI_GENERATED",
"audioFormat": "mp3",
"audioBase64": big_audio
}
response = client.post("/api/feedback", json=payload, headers=api_headers)
assert response.status_code == 413