def test_get_project(mock_url, mock_oauth, use_google_oauth): responses.add('GET', '/api/v1/projects', body=f"""[{{ "id": 0, "name": "my-project", "mlflow_tracking_url": "http://mlflow.api.merlin.dev", "created_at": "{created_at}", "updated_at": "{updated_at}" }}]""", status=200, content_type='application/json') m = MerlinClient(mock_url, use_google_oauth=use_google_oauth) p = m.get_project("my-project") assert responses.calls[-1].request.method == "GET" assert responses.calls[ -1].request.url == "/api/v1/projects?name=my-project" assert responses.calls[-1].request.host == "merlin.dev" assert p.id == 0 assert p.name == "my-project" assert p.mlflow_tracking_url == "http://mlflow.api.merlin.dev" assert p.url == mock_url assert isinstance(p.created_at, datetime.datetime) assert isinstance(p.updated_at, datetime.datetime)
def test_create_invalid_project_name(mock_url, api_client, mock_oauth, use_google_oauth): project_name = "invalidProjectName" client = MerlinClient(mock_url, use_google_oauth=use_google_oauth) # Try to create project with invalid name. It must be fail with pytest.raises(Exception): assert client.get_project(project_name)