From e826e207c439da7a6597df1fe30fc32bf3497292 Mon Sep 17 00:00:00 2001 From: Matthew Richards Date: Mon, 4 Jan 2021 13:39:29 +0000 Subject: [PATCH] #150: Make requested changes on PR review --- datagateway_api/common/backends.py | 2 - datagateway_api/common/config.py | 1 - datagateway_api/common/constants.py | 3 ++ test/db/conftest.py | 21 +++++++- test/db/endpoints/test_get_by_id_db.py | 1 - test/db/endpoints/test_get_with_filters.py | 3 +- test/db/endpoints/test_table_endpoints_db.py | 48 +++++------------- test/db/test_entity_helper.py | 43 ++++++++-------- test/icat/conftest.py | 17 +++++++ test/icat/endpoints/test_create_icat.py | 17 ++----- .../endpoints/test_get_with_filters_icat.py | 6 +-- .../endpoints/test_table_endpoints_icat.py | 50 +++++-------------- test/icat/endpoints/test_update_by_id_icat.py | 15 ++---- test/icat/test_query.py | 20 +------- test/icat/test_session_handling.py | 27 +++++----- test/test_base.py | 21 -------- 16 files changed, 108 insertions(+), 187 deletions(-) delete mode 100644 test/test_base.py diff --git a/datagateway_api/common/backends.py b/datagateway_api/common/backends.py index ed19a93a..d9f92be3 100644 --- a/datagateway_api/common/backends.py +++ b/datagateway_api/common/backends.py @@ -1,6 +1,5 @@ import sys -from datagateway_api.common.backend import Backend from datagateway_api.common.database.backend import DatabaseBackend from datagateway_api.common.icat.backend import PythonICATBackend @@ -27,6 +26,5 @@ def create_backend(backend_type): else: # Might turn to a warning so the abstract class can be tested? sys.exit(f"Invalid config value '{backend_type}' for config option backend") - backend = Backend() return backend diff --git a/datagateway_api/common/config.py b/datagateway_api/common/config.py index e5d55ec4..9b5090a4 100644 --- a/datagateway_api/common/config.py +++ b/datagateway_api/common/config.py @@ -14,7 +14,6 @@ def __init__(self, path=Path(__file__).parent.parent.parent / "config.json"): self.path = path with open(self.path) as target: self.config = json.load(target) - target.close() def get_backend_type(self): try: diff --git a/datagateway_api/common/constants.py b/datagateway_api/common/constants.py index f6e502e6..ce1ae9ac 100644 --- a/datagateway_api/common/constants.py +++ b/datagateway_api/common/constants.py @@ -1,3 +1,5 @@ +from datetime import datetime + from datagateway_api.common.config import config @@ -6,3 +8,4 @@ class Constants: ACCEPTED_DATE_FORMAT = "%Y-%m-%d %H:%M:%S" PYTHON_ICAT_DISTNCT_CONDITION = "!= null" ICAT_PROPERTIES = config.get_icat_properties() + TEST_MOD_CREATE_DATETIME = datetime(2000, 1, 1) diff --git a/test/db/conftest.py b/test/db/conftest.py index 24523f41..6977104e 100644 --- a/test/db/conftest.py +++ b/test/db/conftest.py @@ -3,6 +3,7 @@ import pytest +from datagateway_api.common.constants import Constants from datagateway_api.common.database.helpers import ( delete_row_by_id, insert_row_into_table, @@ -17,8 +18,8 @@ def set_meta_attributes(entity): db_meta_attributes = { - "CREATE_TIME": datetime(2000, 1, 1), - "MOD_TIME": datetime(2000, 1, 1), + "CREATE_TIME": Constants.TEST_MOD_CREATE_DATETIME, + "MOD_TIME": Constants.TEST_MOD_CREATE_DATETIME, "CREATE_ID": "test create id", "MOD_ID": "test mod id", } @@ -110,3 +111,19 @@ def isis_specific_endpoint_data_db(): delete_row_by_id(FACILITYCYCLE, facility_cycle.ID) delete_row_by_id(INVESTIGATION, investigation.ID) delete_row_by_id(INSTRUMENT, instrument.ID) + + +@pytest.fixture() +def final_instrument_id(flask_test_app_db, valid_db_credentials_header): + final_instrument_result = flask_test_app_db.get( + '/instruments/findone?order="ID DESC"', headers=valid_db_credentials_header, + ) + return final_instrument_result.json["ID"] + + +@pytest.fixture() +def final_facilitycycle_id(flask_test_app_db, valid_db_credentials_header): + final_facilitycycle_result = flask_test_app_db.get( + '/facilitycycles/findone?order="ID DESC"', headers=valid_db_credentials_header, + ) + return final_facilitycycle_result.json["ID"] diff --git a/test/db/endpoints/test_get_by_id_db.py b/test/db/endpoints/test_get_by_id_db.py index 8bb4ded5..3c2932a7 100644 --- a/test/db/endpoints/test_get_by_id_db.py +++ b/test/db/endpoints/test_get_by_id_db.py @@ -11,7 +11,6 @@ def test_valid_get_with_id( ' Testing (DB)"}}', headers=valid_db_credentials_header, ) - print(investigation_data.json) test_data_id = investigation_data.json[0]["ID"] test_response = flask_test_app_db.get( diff --git a/test/db/endpoints/test_get_with_filters.py b/test/db/endpoints/test_get_with_filters.py index 1d0d7018..da25b894 100644 --- a/test/db/endpoints/test_get_with_filters.py +++ b/test/db/endpoints/test_get_with_filters.py @@ -24,7 +24,6 @@ def test_valid_no_results_get_with_filters( 'testing purposes..."}}', headers=valid_db_credentials_header, ) - print(test_response.json) assert test_response.json == [] @@ -39,7 +38,7 @@ def test_valid_get_with_filters_distinct( ) expected = [ - {"TITLE": f"Title for DataGateway API Testing (DB) {i}" for i in range(5)}, + {"TITLE": f"Title for DataGateway API Testing (DB) {i}"} for i in range(5) ] for title in expected: diff --git a/test/db/endpoints/test_table_endpoints_db.py b/test/db/endpoints/test_table_endpoints_db.py index 64f5f636..45a95da5 100644 --- a/test/db/endpoints/test_table_endpoints_db.py +++ b/test/db/endpoints/test_table_endpoints_db.py @@ -10,8 +10,6 @@ def test_valid_get_facility_cycles_with_filters( valid_db_credentials_header, isis_specific_endpoint_data_db, ): - - print(int(isis_specific_endpoint_data_db[0])) test_response = flask_test_app_db.get( f"/instruments/{int(isis_specific_endpoint_data_db[0])}/facilitycycles", headers=valid_db_credentials_header, @@ -20,13 +18,8 @@ def test_valid_get_facility_cycles_with_filters( assert test_response.json == [isis_specific_endpoint_data_db[1].to_dict()] def test_invalid_get_facility_cycles_with_filters( - self, flask_test_app_db, valid_db_credentials_header, + self, flask_test_app_db, valid_db_credentials_header, final_instrument_id, ): - final_instrument_result = flask_test_app_db.get( - '/instruments/findone?order="ID DESC"', headers=valid_db_credentials_header, - ) - final_instrument_id = final_instrument_result.json["ID"] - test_response = flask_test_app_db.get( f"/instruments/{final_instrument_id + 100}/facilitycycles", headers=valid_db_credentials_header, @@ -48,13 +41,8 @@ def test_valid_get_facility_cycles_count_with_filters( assert test_response.json == 1 def test_invalid_get_facility_cycles_count_with_filters( - self, flask_test_app_db, valid_db_credentials_header, + self, flask_test_app_db, valid_db_credentials_header, final_instrument_id, ): - final_instrument_result = flask_test_app_db.get( - '/instruments/findone?order="ID DESC"', headers=valid_db_credentials_header, - ) - final_instrument_id = final_instrument_result.json["ID"] - test_response = flask_test_app_db.get( f"/instruments/{final_instrument_id + 100}/facilitycycles/count", headers=valid_db_credentials_header, @@ -77,18 +65,12 @@ def test_valid_get_investigations_with_filters( assert test_response.json == [isis_specific_endpoint_data_db[2].to_dict()] def test_invalid_get_investigations_with_filters( - self, flask_test_app_db, valid_db_credentials_header, + self, + flask_test_app_db, + valid_db_credentials_header, + final_instrument_id, + final_facilitycycle_id, ): - final_instrument_result = flask_test_app_db.get( - '/instruments/findone?order="ID DESC"', headers=valid_db_credentials_header, - ) - final_instrument_id = final_instrument_result.json["ID"] - final_facilitycycle_result = flask_test_app_db.get( - '/facilitycycles/findone?order="ID DESC"', - headers=valid_db_credentials_header, - ) - final_facilitycycle_id = final_facilitycycle_result.json["ID"] - test_response = flask_test_app_db.get( f"/instruments/{final_instrument_id + 100}/facilitycycles/" f"{final_facilitycycle_id + 100}/investigations", @@ -112,18 +94,12 @@ def test_valid_get_investigations_count_with_filters( assert test_response.json == 1 def test_invalid_get_investigations_count_with_filters( - self, flask_test_app_db, valid_db_credentials_header, + self, + flask_test_app_db, + valid_db_credentials_header, + final_instrument_id, + final_facilitycycle_id, ): - final_instrument_result = flask_test_app_db.get( - '/instruments/findone?order="id DESC"', headers=valid_db_credentials_header, - ) - final_instrument_id = final_instrument_result.json["ID"] - final_facilitycycle_result = flask_test_app_db.get( - '/facilitycycles/findone?order="ID DESC"', - headers=valid_db_credentials_header, - ) - final_facilitycycle_id = final_facilitycycle_result.json["ID"] - test_response = flask_test_app_db.get( f"/instruments/{final_instrument_id + 100}/facilitycycles/" f"{final_facilitycycle_id + 100}/investigations/count", diff --git a/test/db/test_entity_helper.py b/test/db/test_entity_helper.py index 5f8e9c0e..bba41776 100644 --- a/test/db/test_entity_helper.py +++ b/test/db/test_entity_helper.py @@ -1,7 +1,6 @@ -import datetime - import pytest +from datagateway_api.common.constants import Constants from datagateway_api.common.database.models import ( DATAFILE, DATAFILEFORMAT, @@ -28,12 +27,12 @@ def datafile_entity(dataset_entity): datafile.DATASET = dataset_entity datafile.DATAFILEFORMAT = datafileformat datafile.NAME = "test name" - datafile.MOD_TIME = datetime.datetime(2000, 1, 1) - datafile.CREATE_TIME = datetime.datetime(2000, 1, 1) + datafile.MOD_TIME = Constants.TEST_MOD_CREATE_DATETIME + datafile.CREATE_TIME = Constants.TEST_MOD_CREATE_DATETIME datafile.CHECKSUM = "test checksum" datafile.FILESIZE = 64 - datafile.DATAFILEMODTIME = datetime.datetime(2000, 1, 1) - datafile.DATAFILECREATETIME = datetime.datetime(2000, 1, 1) + datafile.DATAFILEMODTIME = Constants.TEST_MOD_CREATE_DATETIME + datafile.DATAFILECREATETIME = Constants.TEST_MOD_CREATE_DATETIME datafile.DATASET_ID = 1 datafile.DOI = "test doi" datafile.DESCRIPTION = "test description" @@ -50,18 +49,18 @@ def test_valid_to_dict(self, datafile_entity): "ID": 1, "LOCATION": "test location", "NAME": "test name", - "MOD_TIME": str(datetime.datetime(2000, 1, 1)), + "MOD_TIME": str(Constants.TEST_MOD_CREATE_DATETIME), "CHECKSUM": "test checksum", "FILESIZE": 64, - "DATAFILEMODTIME": str(datetime.datetime(2000, 1, 1)), - "DATAFILECREATETIME": str(datetime.datetime(2000, 1, 1)), + "DATAFILEMODTIME": str(Constants.TEST_MOD_CREATE_DATETIME), + "DATAFILECREATETIME": str(Constants.TEST_MOD_CREATE_DATETIME), "DATASET_ID": 1, "DOI": "test doi", "DESCRIPTION": "test description", "CREATE_ID": "test create id", "MOD_ID": "test mod id", "DATAFILEFORMAT_ID": 1, - "CREATE_TIME": str(datetime.datetime(2000, 1, 1)), + "CREATE_TIME": str(Constants.TEST_MOD_CREATE_DATETIME), } test_data = datafile_entity.to_dict() @@ -76,18 +75,18 @@ def test_valid_to_dict(self, datafile_entity): "ID": 1, "LOCATION": "test location", "NAME": "test name", - "MOD_TIME": str(datetime.datetime(2000, 1, 1)), + "MOD_TIME": str(Constants.TEST_MOD_CREATE_DATETIME), "CHECKSUM": "test checksum", "FILESIZE": 64, - "DATAFILEMODTIME": str(datetime.datetime(2000, 1, 1)), - "DATAFILECREATETIME": str(datetime.datetime(2000, 1, 1)), + "DATAFILEMODTIME": str(Constants.TEST_MOD_CREATE_DATETIME), + "DATAFILECREATETIME": str(Constants.TEST_MOD_CREATE_DATETIME), "DATASET_ID": 1, "DOI": "test doi", "DESCRIPTION": "test description", "CREATE_ID": "test create id", "MOD_ID": "test mod id", "DATAFILEFORMAT_ID": 1, - "CREATE_TIME": str(datetime.datetime(2000, 1, 1)), + "CREATE_TIME": str(Constants.TEST_MOD_CREATE_DATETIME), "DATASET": { "ID": None, "CREATE_TIME": None, @@ -114,18 +113,18 @@ def test_valid_to_dict(self, datafile_entity): "ID": 1, "LOCATION": "test location", "NAME": "test name", - "MOD_TIME": str(datetime.datetime(2000, 1, 1)), + "MOD_TIME": str(Constants.TEST_MOD_CREATE_DATETIME), "CHECKSUM": "test checksum", "FILESIZE": 64, - "DATAFILEMODTIME": str(datetime.datetime(2000, 1, 1)), - "DATAFILECREATETIME": str(datetime.datetime(2000, 1, 1)), + "DATAFILEMODTIME": str(Constants.TEST_MOD_CREATE_DATETIME), + "DATAFILECREATETIME": str(Constants.TEST_MOD_CREATE_DATETIME), "DATASET_ID": 1, "DOI": "test doi", "DESCRIPTION": "test description", "CREATE_ID": "test create id", "MOD_ID": "test mod id", "DATAFILEFORMAT_ID": 1, - "CREATE_TIME": str(datetime.datetime(2000, 1, 1)), + "CREATE_TIME": str(Constants.TEST_MOD_CREATE_DATETIME), "DATASET": { "ID": None, "CREATE_TIME": None, @@ -180,18 +179,18 @@ def test_valid_update_from_dict(self, datafile_entity): "ID": 1, "LOCATION": "test location", "NAME": "test name", - "MOD_TIME": str(datetime.datetime(2000, 1, 1)), + "MOD_TIME": str(Constants.TEST_MOD_CREATE_DATETIME), "CHECKSUM": "test checksum", "FILESIZE": 64, - "DATAFILEMODTIME": str(datetime.datetime(2000, 1, 1)), - "DATAFILECREATETIME": str(datetime.datetime(2000, 1, 1)), + "DATAFILEMODTIME": str(Constants.TEST_MOD_CREATE_DATETIME), + "DATAFILECREATETIME": str(Constants.TEST_MOD_CREATE_DATETIME), "DATASET_ID": 1, "DOI": "test doi", "DESCRIPTION": "test description", "CREATE_ID": "test create id", "MOD_ID": "test mod id", "DATAFILEFORMAT_ID": 1, - "CREATE_TIME": str(datetime.datetime(2000, 1, 1)), + "CREATE_TIME": str(Constants.TEST_MOD_CREATE_DATETIME), } datafile.update_from_dict(test_dict_data) diff --git a/test/icat/conftest.py b/test/icat/conftest.py index 38bf6b01..2549dd83 100644 --- a/test/icat/conftest.py +++ b/test/icat/conftest.py @@ -134,3 +134,20 @@ def isis_specific_endpoint_data(icat_client): icat_client.delete(instrument) except ICATNoObjectError as e: print(e) + + +@pytest.fixture() +def final_instrument_id(flask_test_app_icat, valid_icat_credentials_header): + final_instrument_result = flask_test_app_icat.get( + '/instruments/findone?order="id DESC"', headers=valid_icat_credentials_header, + ) + return final_instrument_result.json["id"] + + +@pytest.fixture() +def final_facilitycycle_id(flask_test_app_icat, valid_icat_credentials_header): + final_facilitycycle_result = flask_test_app_icat.get( + '/facilitycycles/findone?order="id DESC"', + headers=valid_icat_credentials_header, + ) + return final_facilitycycle_result.json["id"] diff --git a/test/icat/endpoints/test_create_icat.py b/test/icat/endpoints/test_create_icat.py index b00d0bb8..79e4e198 100644 --- a/test/icat/endpoints/test_create_icat.py +++ b/test/icat/endpoints/test_create_icat.py @@ -7,7 +7,7 @@ def test_valid_create_data( ): create_investigations_json = [ { - "name": "Test Data for API Testing, Data Creation 1", + "name": f"Test Data for API Testing, Data Creation {i}", "title": "Test data for the Python ICAT Backend on DataGateway API", "summary": "Test data for DataGateway API testing", "releaseDate": "2020-03-03 08:00:08", @@ -17,19 +17,8 @@ def test_valid_create_data( "doi": "DataGateway API Test DOI", "facility": 1, "type": 1, - }, - { - "name": "Test Data for API Testing, Data Creation 2", - "title": "Test data for the Python ICAT Backend on DataGateway API", - "summary": "Test data for DataGateway API testing", - "releaseDate": "2020-03-03 08:00:08", - "startDate": "2020-02-02 09:00:09", - "endDate": "2020-02-03 10:00:10", - "visitId": "Data Creation Visit", - "doi": "DataGateway API Test DOI", - "facility": 1, - "type": 1, - }, + } + for i in range(2) ] test_response = flask_test_app_icat.post( diff --git a/test/icat/endpoints/test_get_with_filters_icat.py b/test/icat/endpoints/test_get_with_filters_icat.py index 900fa73d..b05e8160 100644 --- a/test/icat/endpoints/test_get_with_filters_icat.py +++ b/test/icat/endpoints/test_get_with_filters_icat.py @@ -41,10 +41,8 @@ def test_valid_get_with_filters_distinct( ) expected = [ - { - "title": f"Test data for the Python ICAT Backend on DataGateway API {i}" - for i in range(5) - }, + {"title": f"Test data for the Python ICAT Backend on DataGateway API {i}"} + for i in range(5) ] for title in expected: diff --git a/test/icat/endpoints/test_table_endpoints_icat.py b/test/icat/endpoints/test_table_endpoints_icat.py index af1e9581..a62b3c63 100644 --- a/test/icat/endpoints/test_table_endpoints_icat.py +++ b/test/icat/endpoints/test_table_endpoints_icat.py @@ -23,14 +23,8 @@ def test_valid_get_facility_cycles_with_filters( assert response_json == isis_specific_endpoint_data[1] def test_invalid_get_facility_cycles_with_filters( - self, flask_test_app_icat, valid_icat_credentials_header, + self, flask_test_app_icat, valid_icat_credentials_header, final_instrument_id, ): - final_instrument_result = flask_test_app_icat.get( - '/instruments/findone?order="id DESC"', - headers=valid_icat_credentials_header, - ) - final_instrument_id = final_instrument_result.json["id"] - test_response = flask_test_app_icat.get( f"/instruments/{final_instrument_id + 100}/facilitycycles", headers=valid_icat_credentials_header, @@ -52,14 +46,8 @@ def test_valid_get_facility_cycles_count_with_filters( assert test_response.json == 1 def test_invalid_get_facility_cycles_count_with_filters( - self, flask_test_app_icat, valid_icat_credentials_header, + self, flask_test_app_icat, valid_icat_credentials_header, final_instrument_id, ): - final_instrument_result = flask_test_app_icat.get( - '/instruments/findone?order="id DESC"', - headers=valid_icat_credentials_header, - ) - final_instrument_id = final_instrument_result.json["id"] - test_response = flask_test_app_icat.get( f"/instruments/{final_instrument_id + 100}/facilitycycles/count", headers=valid_icat_credentials_header, @@ -84,19 +72,12 @@ def test_valid_get_investigations_with_filters( assert response_json == isis_specific_endpoint_data[3] def test_invalid_get_investigations_with_filters( - self, flask_test_app_icat, valid_icat_credentials_header, + self, + flask_test_app_icat, + valid_icat_credentials_header, + final_instrument_id, + final_facilitycycle_id, ): - final_instrument_result = flask_test_app_icat.get( - '/instruments/findone?order="id DESC"', - headers=valid_icat_credentials_header, - ) - final_instrument_id = final_instrument_result.json["id"] - final_facilitycycle_result = flask_test_app_icat.get( - '/facilitycycles/findone?order="id DESC"', - headers=valid_icat_credentials_header, - ) - final_facilitycycle_id = final_facilitycycle_result.json["id"] - test_response = flask_test_app_icat.get( f"/instruments/{final_instrument_id + 100}/facilitycycles/" f"{final_facilitycycle_id + 100}/investigations", @@ -120,19 +101,12 @@ def test_valid_get_investigations_count_with_filters( assert test_response.json == 1 def test_invalid_get_investigations_count_with_filters( - self, flask_test_app_icat, valid_icat_credentials_header, + self, + flask_test_app_icat, + valid_icat_credentials_header, + final_instrument_id, + final_facilitycycle_id, ): - final_instrument_result = flask_test_app_icat.get( - '/instruments/findone?order="id DESC"', - headers=valid_icat_credentials_header, - ) - final_instrument_id = final_instrument_result.json["id"] - final_facilitycycle_result = flask_test_app_icat.get( - '/facilitycycles/findone?order="id DESC"', - headers=valid_icat_credentials_header, - ) - final_facilitycycle_id = final_facilitycycle_result.json["id"] - test_response = flask_test_app_icat.get( f"/instruments/{final_instrument_id + 100}/facilitycycles/" f"{final_facilitycycle_id + 100}/investigations/count", diff --git a/test/icat/endpoints/test_update_by_id_icat.py b/test/icat/endpoints/test_update_by_id_icat.py index bd6d4727..af97f54e 100644 --- a/test/icat/endpoints/test_update_by_id_icat.py +++ b/test/icat/endpoints/test_update_by_id_icat.py @@ -8,15 +8,11 @@ def test_valid_update_with_id( valid_icat_credentials_header, single_investigation_test_data, ): - expected_doi = "Test Data Identifier" - expected_summary = "Test Summary" - update_data_json = { - "doi": expected_doi, - "summary": expected_summary, + "doi": "Test Data Identifier", + "summary": "Test Summary", } - single_investigation_test_data[0]["doi"] = expected_doi - single_investigation_test_data[0]["summary"] = expected_summary + single_investigation_test_data[0].update(update_data_json) test_response = flask_test_app_icat.patch( f"/investigations/{single_investigation_test_data[0]['id']}", @@ -37,10 +33,7 @@ def test_invalid_update_with_id( # DOI cannot be over 255 characters, which this string is invalid_update_json = { - "doi": "__________________________________________________________________" - "_________________________________________________________________________" - "_________________________________________________________________________" - "_________________________________________________________________________", + "doi": "_" * 256, } test_response = flask_test_app_icat.patch( diff --git a/test/icat/test_query.py b/test/icat/test_query.py index 6ee3e53d..6def14b8 100644 --- a/test/icat/test_query.py +++ b/test/icat/test_query.py @@ -46,7 +46,7 @@ def prepare_icat_data_for_assertion(data, remove_id=False): class TestICATQuery: def test_valid_query_creation(self, icat_client): - # Paramitise and add inputs for conditions, aggregate and includes + # Paramatise and add inputs for conditions, aggregate and includes test_query = ICATQuery(icat_client, "User") assert test_query.query.entity == icat_client.getEntityClass("User") @@ -80,12 +80,6 @@ def test_invalid_query_execution(self, icat_client): with pytest.raises(PythonICATError): test_query.execute_query(icat_client) - def test_valid_count_query_execution(self, icat_client): - pass - - def test_valid_distinct_query_execution(self, icat_client): - pass - def test_json_format_execution_output( self, icat_client, single_investigation_test_data, ): @@ -100,17 +94,6 @@ def test_json_format_execution_output( assert query_output_json == single_investigation_test_data - # gap in function testing - - def test_valid_entity_to_dict_conversion(self, icat_client): - # Want just a typical entity and an entity with an entity list in it - pass - - def test_valid_distinct_attribute_mapping(self): - pass - - # another gap - def test_include_fields_list_flatten(self, icat_client): included_field_set = { "investigationUsers.investigation.datasets", @@ -120,7 +103,6 @@ def test_include_fields_list_flatten(self, icat_client): } test_query = ICATQuery(icat_client, "User") - flat_list = test_query.flatten_query_included_fields(included_field_set) assert flat_list == [ diff --git a/test/icat/test_session_handling.py b/test/icat/test_session_handling.py index c01fd33e..2018ca01 100644 --- a/test/icat/test_session_handling.py +++ b/test/icat/test_session_handling.py @@ -8,9 +8,6 @@ class TestSessionHandling: - def test_session_id_decorator(self): - pass - def test_get_valid_session_details( self, flask_test_app_icat, valid_icat_credentials_header, ): @@ -18,27 +15,28 @@ def test_get_valid_session_details( "/sessions", headers=valid_icat_credentials_header, ) + session_expiry_datetime = datetime.strptime( + session_details.json["EXPIREDATETIME"], "%Y-%m-%d %H:%M:%S.%f", + ) + current_datetime = datetime.now() + time_diff = abs(session_expiry_datetime - current_datetime) + time_diff_minutes = time_diff.seconds / 60 + + # Allows a bit of leeway for slow test execution + assert time_diff_minutes < 120 and time_diff_minutes >= 118 + # Check username is correct assert ( session_details.json["USERNAME"] == f"{config.get_test_mechanism()}/" f"{config.get_test_user_credentials()['username']}" ) + # Check session ID matches the header from the request assert ( session_details.json["ID"] == valid_icat_credentials_header["Authorization"].split()[1] ) - session_expiry_datetime = datetime.strptime( - session_details.json["EXPIREDATETIME"], "%Y-%m-%d %H:%M:%S.%f", - ) - current_datetime = datetime.now() - time_diff = abs(session_expiry_datetime - current_datetime) - time_diff_minutes = time_diff.seconds / 60 - - # Allows a bit of leeway for slow test execution - assert time_diff_minutes < 120 and time_diff_minutes >= 118 - def test_get_invalid_session_details( self, bad_credentials_header, flask_test_app_icat, ): @@ -56,12 +54,13 @@ def test_refresh_session(self, valid_icat_credentials_header, flask_test_app_ica refresh_session = flask_test_app_icat.put( "/sessions", headers=valid_icat_credentials_header, ) - assert refresh_session.status_code == 200 post_refresh_session_details = flask_test_app_icat.get( "/sessions", headers=valid_icat_credentials_header, ) + assert refresh_session.status_code == 200 + assert ( pre_refresh_session_details.json["EXPIREDATETIME"] != post_refresh_session_details.json["EXPIREDATETIME"] diff --git a/test/test_base.py b/test/test_base.py deleted file mode 100644 index 5236c379..00000000 --- a/test/test_base.py +++ /dev/null @@ -1,21 +0,0 @@ -from unittest import TestCase - -from flask import Flask - -from datagateway_api.src.main import create_api_endpoints, create_app_infrastructure - - -class FlaskAppTest(TestCase): - """ - The FlaskAppTest Base class sets up a test client to be used to mock requests - """ - - def setUp(self): - app = Flask(__name__) - app.config["TESTING"] = True - app.config["TESTING"] = True - app.config["TEST_BACKEND"] = "db" - - api, spec = create_app_infrastructure(app) - create_api_endpoints(app, api, spec) - self.app = app.test_client()