测试极速成片

This commit is contained in:
Azmat@qq.com
2026-08-26 15:18:18 +08:00
parent 245525ec53
commit 0ee498d807
30 changed files with 1963 additions and 367 deletions
+13 -4
View File
@@ -1,4 +1,4 @@
from django.test import TestCase
from django.test import TestCase, override_settings
from unittest.mock import patch
from rest_framework.test import APIClient
@@ -351,9 +351,11 @@ class ProjectApiTests(TestCase):
group = BaseAssetGroup.objects.get(project=project, kind=BaseAssetGroup.Kind.PERSON)
self.assertEqual(group.metadata.get("label"), "女主")
@override_settings(CACHES={"default": {"BACKEND": "django.core.cache.backends.locmem.LocMemCache"}})
@patch("apps.ai.tasks.generate_base_asset_task.delay")
@patch("apps.ai.services._store_generated_media")
@patch("apps.ai.services.get_image_provider")
def test_generate_base_asset_ignores_auto_triview_request(self, get_provider, store_media):
def test_generate_person_base_asset_always_enables_auto_triview(self, get_provider, store_media, _enqueue_base_asset):
ModelConfig.objects.create(
provider=self.provider, name="img-model-auto-tri", display_name="Img Auto Tri",
capability=ModelConfig.Capability.IMAGE, endpoint="images/generations", unit_price="1.0000",
@@ -370,13 +372,13 @@ class ProjectApiTests(TestCase):
response = self.client.post(
f"/api/projects/{project.id}/generate-base-asset/",
{"kind": "person", "prompt": "portrait", "label": "hero", "auto_triview": True},
{"kind": "person", "prompt": "portrait", "label": "hero"},
format="json",
)
self.assertEqual(response.status_code, 202)
task = AITask.objects.get(id=response.data["task"]["id"])
self.assertFalse(task.request_payload.get("auto_triview"))
self.assertTrue(task.request_payload.get("auto_triview"))
@patch("apps.ai.services._store_generated_media")
@patch("apps.ai.services.get_image_provider")
@@ -1348,6 +1350,13 @@ class VideoSegmentTrueUpTests(TestCase):
self.assertEqual(task.credit_reservation.amount, video_reserve_amount(quote.points))
self.assertEqual(task.request_payload["estimated_tokens"], tokens)
def test_submit_reads_wizard_output_spec(self):
self.project.metadata = {"wizard": {"aspect_ratio": "16:9", "resolution": "480p"}}
self.project.save(update_fields=["metadata"])
task = self._submit()
self.assertEqual(task.request_payload["ratio"], "16:9")
self.assertEqual(task.request_payload["resolution"], "480p")
@patch("apps.ai.services._store_generated_media")
def test_poll_settles_by_actual_usage_tokens(self, store):
from decimal import Decimal