bemade-addons/openwebui_base/tests/test_openwebui.py

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)