52 lines
1.8 KiB
Python
52 lines
1.8 KiB
Python
from odoo.tests import TransactionCase, Form
|
|
import os
|
|
|
|
|
|
class TestOpenWebUI(TransactionCase):
|
|
def setUp(self):
|
|
super().setUp()
|
|
self.provider = self.env["openwebui.provider"].create(
|
|
{
|
|
"name": "Test Provider",
|
|
"base_url": os.getenv("OPENWEBUI_BASE_URL"),
|
|
"api_key": os.getenv("OPENWEBUI_API_KEY"),
|
|
}
|
|
)
|
|
|
|
def test_sync_models(self):
|
|
self.assertTrue(self.provider.model_ids)
|
|
self.assertIn(
|
|
"MS.qwen3:32b-q8_0", self.provider.model_ids.mapped("technical_name")
|
|
)
|
|
|
|
def test_get_client(self):
|
|
client = self.provider.get_client()
|
|
self.assertTrue(client)
|
|
|
|
def test_settings(self):
|
|
model = self.provider.model_ids.filtered(
|
|
lambda model: model.technical_name == "MS.qwen3:32b-q8_0"
|
|
)
|
|
wizard = self.env["res.config.settings"].create({})
|
|
with Form(wizard) as form:
|
|
form.openwebui_provider_id = self.provider
|
|
form.openwebui_default_model_id = model
|
|
self.assertEqual(self.env.company.openwebui_provider_id, self.provider)
|
|
self.assertEqual(self.env.company.openwebui_default_model_id, model)
|
|
|
|
def test_openwebui_chat(self):
|
|
model = self.provider.model_ids.filtered(
|
|
lambda model: model.technical_name == "MS.qwen3:32b-q8_0"
|
|
)
|
|
self.env.company.openwebui_default_model_id = model
|
|
self.env.company.openwebui_provider_id = self.provider
|
|
response = self.provider.get_client().chat.completions.create(
|
|
model=model.technical_name,
|
|
messages=[
|
|
{
|
|
"role": "user",
|
|
"content": "Hello, how are you?",
|
|
}
|
|
],
|
|
)
|
|
self.assertTrue(response and response.choices)
|