Skip to content

Commit

Permalink
#241: Add tests for ping endpoint
Browse files Browse the repository at this point in the history
  • Loading branch information
MRichards99 committed Aug 13, 2021
1 parent 0439247 commit 7e89e29
Show file tree
Hide file tree
Showing 3 changed files with 51 additions and 0 deletions.
24 changes: 24 additions & 0 deletions test/db/endpoints/test_ping_db.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
from unittest.mock import patch

import pytest
from sqlalchemy.exc import SQLAlchemyError

from datagateway_api.common.backends import create_backend
from datagateway_api.common.constants import Constants
from datagateway_api.common.exceptions import DatabaseError


class TestICATPing:
def test_valid_ping(self, flask_test_app_db):
test_response = flask_test_app_db.get("/ping")

assert test_response.json == Constants.PING_OK_RESPONSE

def test_invalid_ping(self):
with patch(
"sqlalchemy.engine.reflection.Inspector.get_table_names",
side_effect=SQLAlchemyError("Mocked Exception"),
):
with pytest.raises(DatabaseError):
backend = create_backend("db")
backend.ping()
26 changes: 26 additions & 0 deletions test/icat/endpoints/test_ping_icat.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
from unittest.mock import patch

from icat.exception import ICATError
import pytest

from datagateway_api.common.backends import create_backend
from datagateway_api.common.constants import Constants
from datagateway_api.common.exceptions import PythonICATError
from datagateway_api.common.icat.icat_client_pool import create_client_pool


class TestICATPing:
def test_valid_ping(self, flask_test_app_icat):
test_response = flask_test_app_icat.get("/ping")

assert test_response.json == Constants.PING_OK_RESPONSE

def test_invalid_ping(self):
with patch(
"icat.client.Client.getEntityNames",
side_effect=ICATError("Mocked Exception"),
):
with pytest.raises(PythonICATError):
backend = create_backend("python_icat")
client_pool = create_client_pool()
backend.ping(client_pool=client_pool)
1 change: 1 addition & 0 deletions test/test_backends.py
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ class DummyBackend(Backend):
facilitycycle_id = "facilitycycle_id"
id_ = "id_"

assert d.ping() is None
assert d.login(credentials) is None
assert d.get_session_details(session_id) is None
assert d.refresh(session_id) is None
Expand Down

0 comments on commit 7e89e29

Please sign in to comment.