mirror of
https://github.com/mudler/LocalAI.git
synced 2026-02-05 04:02:45 -05:00
54 lines
1.6 KiB
Python
54 lines
1.6 KiB
Python
"""
|
|
Tests for the ACE-Step gRPC backend.
|
|
"""
|
|
import os
|
|
import tempfile
|
|
import unittest
|
|
|
|
import backend_pb2
|
|
import backend_pb2_grpc
|
|
import grpc
|
|
|
|
|
|
class TestACEStepBackend(unittest.TestCase):
|
|
"""Test Health, LoadModel, and SoundGeneration (minimal; no real model required)."""
|
|
|
|
@classmethod
|
|
def setUpClass(cls):
|
|
port = os.environ.get("BACKEND_PORT", "50051")
|
|
cls.channel = grpc.insecure_channel(f"localhost:{port}")
|
|
cls.stub = backend_pb2_grpc.BackendStub(cls.channel)
|
|
|
|
@classmethod
|
|
def tearDownClass(cls):
|
|
cls.channel.close()
|
|
|
|
def test_health(self):
|
|
response = self.stub.Health(backend_pb2.HealthMessage())
|
|
self.assertEqual(response.message, b"OK")
|
|
|
|
def test_load_model(self):
|
|
response = self.stub.LoadModel(backend_pb2.ModelOptions(Model="ace-step-test"))
|
|
self.assertTrue(response.success, response.message)
|
|
|
|
def test_sound_generation_minimal(self):
|
|
with tempfile.NamedTemporaryFile(suffix=".wav", delete=False) as f:
|
|
dst = f.name
|
|
try:
|
|
req = backend_pb2.SoundGenerationRequest(
|
|
text="upbeat pop song",
|
|
model="ace-step-test",
|
|
dst=dst,
|
|
)
|
|
response = self.stub.SoundGeneration(req)
|
|
self.assertTrue(response.success, response.message)
|
|
self.assertTrue(os.path.exists(dst), f"Output file not created: {dst}")
|
|
self.assertGreater(os.path.getsize(dst), 0)
|
|
finally:
|
|
if os.path.exists(dst):
|
|
os.unlink(dst)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|