test_models.py 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. from test.util.abstract_integration_test import AbstractPostgresTest
  2. from test.util.mock_user import mock_webui_user
  3. class TestModels(AbstractPostgresTest):
  4. BASE_PATH = "/api/v1/models"
  5. def setup_class(cls):
  6. super().setup_class()
  7. from apps.webui.models.models import Model
  8. cls.models = Model
  9. def test_models(self):
  10. with mock_webui_user(id="2"):
  11. response = self.fast_api_client.get(self.create_url("/"))
  12. assert response.status_code == 200
  13. assert len(response.json()) == 0
  14. with mock_webui_user(id="2"):
  15. response = self.fast_api_client.post(
  16. self.create_url("/add"),
  17. json={
  18. "id": "my-model",
  19. "base_model_id": "base-model-id",
  20. "name": "Hello World",
  21. "meta": {
  22. "profile_image_url": "/favicon.png",
  23. "description": "description",
  24. "capabilities": None,
  25. "model_config": {},
  26. },
  27. "params": {},
  28. },
  29. )
  30. assert response.status_code == 200
  31. with mock_webui_user(id="2"):
  32. response = self.fast_api_client.get(self.create_url("/"))
  33. assert response.status_code == 200
  34. assert len(response.json()) == 1
  35. with mock_webui_user(id="2"):
  36. response = self.fast_api_client.get(
  37. self.create_url(query_params={"id": "my-model"})
  38. )
  39. assert response.status_code == 200
  40. data = response.json()[0]
  41. assert data["id"] == "my-model"
  42. assert data["name"] == "Hello World"
  43. with mock_webui_user(id="2"):
  44. response = self.fast_api_client.delete(
  45. self.create_url("/delete?id=my-model")
  46. )
  47. assert response.status_code == 200
  48. with mock_webui_user(id="2"):
  49. response = self.fast_api_client.get(self.create_url("/"))
  50. assert response.status_code == 200
  51. assert len(response.json()) == 0