from test.util.abstract_integration_test import AbstractPostgresTest from test.util.mock_user import mock_webui_user class TestModels(AbstractPostgresTest): BASE_PATH = "/api/v1/models" def setup_class(cls): super().setup_class() from open_webui.apps.webui.models.models import Model cls.models = Model def test_models(self): with mock_webui_user(id="2"): response = self.fast_api_client.get(self.create_url("/")) assert response.status_code == 200 assert len(response.json()) == 0 with mock_webui_user(id="2"): response = self.fast_api_client.post( self.create_url("/add"), json={ "id": "my-model", "base_model_id": "base-model-id", "name": "Hello World", "meta": { "profile_image_url": "/static/favicon.png", "description": "description", "capabilities": None, "model_config": {}, }, "params": {}, }, ) assert response.status_code == 200 with mock_webui_user(id="2"): response = self.fast_api_client.get(self.create_url("/")) assert response.status_code == 200 assert len(response.json()) == 1 with mock_webui_user(id="2"): response = self.fast_api_client.get( self.create_url(query_params={"id": "my-model"}) ) assert response.status_code == 200 data = response.json()[0] assert data["id"] == "my-model" assert data["name"] == "Hello World" with mock_webui_user(id="2"): response = self.fast_api_client.delete( self.create_url("/delete?id=my-model") ) assert response.status_code == 200 with mock_webui_user(id="2"): response = self.fast_api_client.get(self.create_url("/")) assert response.status_code == 200 assert len(response.json()) == 0