Skip to content

Commit

Permalink
refactor: Rewrote verify method of RemoteWorkspace
Browse files Browse the repository at this point in the history
Previously this method does not check much except HTTP status

Closes: #826
  • Loading branch information
mou committed Oct 20, 2023
1 parent 6dfdebe commit e430043
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 3 deletions.
2 changes: 1 addition & 1 deletion src/evidently/ui/app.py
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,7 @@ async def root():

@api_read_router.get("/version")
async def version():
return {"version": evidently.__version__}
return {"application": "Evidently UI", "version": evidently.__version__,}


@api_read_router.get("/projects")
Expand Down
6 changes: 4 additions & 2 deletions src/evidently/ui/remote.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
from typing import Optional
from typing import Union
from urllib.error import HTTPError
from requests.exceptions import JSONDecodeError

from evidently.suite.base_suite import Snapshot
from evidently.ui.dashboards import DashboardConfig
Expand All @@ -24,8 +25,9 @@ def __init__(self, base_url: str, secret: str = None):

def verify(self):
try:
self._request("/api/", "GET").raise_for_status()
except HTTPError as e:
response = self._request("/api/version", "GET")
assert response.json()["application"] == "Evidently UI"
except (HTTPError, JSONDecodeError, KeyError, AssertionError) as e:
raise ValueError(f"Evidenly API not available at {self.base_url}") from e

def create_project(self, name: str, description: Optional[str] = None) -> RemoteProject:
Expand Down
8 changes: 8 additions & 0 deletions tests/ui/test_ui_basic.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,14 @@ def test_root_route():
assert response.status_code == 200


def test_remote_verify_route():
response = client.get("/api/version")
assert response.status_code == 200
version_response = response.json()
assert "version" in version_response
assert version_response["application"] == "Evidently UI"


@pytest.mark.usefixtures("demo_project_workspace")
def test_api_project():
response = client.get("/api/projects")
Expand Down

0 comments on commit e430043

Please sign in to comment.