From db3578381c11b04f961df7a1313c9df7751c7fdb Mon Sep 17 00:00:00 2001 From: lb584 <lb584@cam.ac.uk> Date: Wed, 26 Apr 2023 17:39:16 +0100 Subject: [PATCH] fixing unit tests I hadnt noticed that I had broken --- tests/integration/partial/test_advisory.py | 29 ++++++++++--------- tests/integration/partial/test_survey.py | 28 ++++++++++-------- .../test_suites/advisory_test_suite.py | 26 +++++++---------- .../test_suites/survey_test_suite.py | 12 +++----- 4 files changed, 47 insertions(+), 48 deletions(-) diff --git a/tests/integration/partial/test_advisory.py b/tests/integration/partial/test_advisory.py index c559f04..d79c423 100644 --- a/tests/integration/partial/test_advisory.py +++ b/tests/integration/partial/test_advisory.py @@ -9,8 +9,8 @@ from integration.test_suites.advisory_test_suite import BaseAdvisoryTestSuite class TestAdvisory(BaseAdvisoryTestSuite.AdvisoryTestSuite): def set_expected_values(self): - BaseAdvisoryTestSuite.AdvisoryTestSuite.TEST_START_DATE = '20221001' - BaseAdvisoryTestSuite.AdvisoryTestSuite.TEST_JOB_DIR = "ADVISORY_" + BaseAdvisoryTestSuite.AdvisoryTestSuite.TEST_START_DATE + IntegrationTestUtils.TEST_START_DATE = '20221001' + IntegrationTestUtils.TEST_JOB_DIR = "ADVISORY_" + IntegrationTestUtils.TEST_START_DATE self.EXPECTED_EA_IMAGE_COUNT = 3 self.EXPECTED_ETH_IMAGE_COUNT = 3 self.EXPECTED_EA_SHAPE_COUNT = 3 @@ -20,43 +20,46 @@ class TestAdvisory(BaseAdvisoryTestSuite.AdvisoryTestSuite): self.set_expected_values() - if BaseAdvisoryTestSuite.AdvisoryTestSuite.TEST_OUT_PATH is None or not os.path.isdir(BaseAdvisoryTestSuite.AdvisoryTestSuite.TEST_OUT_PATH): + if IntegrationTestUtils.TEST_OUT_PATH is None or not os.path.isdir(IntegrationTestUtils.TEST_OUT_PATH): TestAdvisory.write_temp_run_config_files() TestAdvisory.unpack_dependencies() TestAdvisory.run_advisory_pipeline() else: - print(f"output in {BaseAdvisoryTestSuite.AdvisoryTestSuite.TEST_OUT_PATH} already written, skipping rerun") + print(f"output in {IntegrationTestUtils.TEST_OUT_PATH} already written, skipping rerun") @staticmethod def write_temp_run_config_files(): nowstring: str = IntegrationTestUtils.get_now_string() - # prefix: str = "temp_advisory_" + nowstring - prefix: str = "temp_advisory" + prefix: str = "temp_advisory_" + nowstring + # prefix: str = "temp_advisory" default_config = IntegrationTestUtils.DEFAULT_CONFIG_FILE_PATH default_config_dict: dict = IntegrationTestUtils.load_json_file(default_config) run_dict: dict = copy.deepcopy(default_config_dict) - BaseAdvisoryTestSuite.AdvisoryTestSuite.TEST_OUT_PATH = IntegrationTestUtils.TEST_WORKSPACE_PATH + prefix + os.sep + IntegrationTestUtils.TEST_OUT_PATH = IntegrationTestUtils.TEST_WORKSPACE_PATH + prefix + os.sep # TestAdvisory.TEST_OUT_PATH = run_dict['WorkspacePathout'] + prefix + os.sep - run_dict['WorkspacePathout'] = BaseAdvisoryTestSuite.AdvisoryTestSuite.TEST_OUT_PATH - run_dict['WorkspacePath'] = BaseAdvisoryTestSuite.AdvisoryTestSuite.TEST_OUT_PATH + run_dict['WorkspacePathout'] = IntegrationTestUtils.TEST_OUT_PATH + run_dict['WorkspacePath'] = IntegrationTestUtils.TEST_OUT_PATH run_dict['ServerName'] = '' # nothing, as local machine + # may be reusing a non-timestamped output file during development, so allow extant TEST_OUT_PATH + os.makedirs(IntegrationTestUtils.TEST_OUT_PATH, exist_ok = True) + IntegrationTestUtils.TEMP_CONFIG_FILE_NAME = IntegrationTestUtils.TEST_OUT_PATH + "temp_config.json" IntegrationTestUtils.write_json_file(run_dict, IntegrationTestUtils.TEMP_CONFIG_FILE_NAME) @staticmethod def unpack_dependencies(): - IntegrationTestUtils.unpack_zip(IntegrationTestUtils.EXAMPLE_SURVEY_FILE_PATH, TestAdvisory.TEST_OUT_PATH) - IntegrationTestUtils.unpack_zip(IntegrationTestUtils.EXAMPLE_DEPO_FILE_PATH, TestAdvisory.TEST_OUT_PATH) - IntegrationTestUtils.unpack_zip(IntegrationTestUtils.EXAMPLE_ENV_SUIT_FILE_PATH, TestAdvisory.TEST_OUT_PATH) + IntegrationTestUtils.unpack_zip(IntegrationTestUtils.EXAMPLE_SURVEY_FILE_PATH, IntegrationTestUtils.TEST_OUT_PATH) + IntegrationTestUtils.unpack_zip(IntegrationTestUtils.EXAMPLE_DEPO_FILE_PATH, IntegrationTestUtils.TEST_OUT_PATH) + IntegrationTestUtils.unpack_zip(IntegrationTestUtils.EXAMPLE_ENV_SUIT_FILE_PATH, IntegrationTestUtils.TEST_OUT_PATH) @staticmethod def run_advisory_pipeline(): component = 'Advisory' - IntegrationTestUtils.run_unittest_pipeline(component, TestAdvisory.TEST_START_DATE) + IntegrationTestUtils.run_unittest_pipeline(component, IntegrationTestUtils.TEST_START_DATE) if __name__ == '__main__': diff --git a/tests/integration/partial/test_survey.py b/tests/integration/partial/test_survey.py index da26e01..faca2fc 100644 --- a/tests/integration/partial/test_survey.py +++ b/tests/integration/partial/test_survey.py @@ -9,21 +9,21 @@ from integration.test_suites.survey_test_suite import BaseSurveyTestSuite class TestSurvey(BaseSurveyTestSuite.SurveyTestSuite): def set_expected_values(self): - BaseSurveyTestSuite.SurveyTestSuite.TEST_START_DATE = '20221001' - BaseSurveyTestSuite.SurveyTestSuite.TEST_JOB_DIR = "SURVEYDATA_" + BaseSurveyTestSuite.SurveyTestSuite.TEST_START_DATE + IntegrationTestUtils.TEST_START_DATE = '20221001' + IntegrationTestUtils.TEST_JOB_DIR = "SURVEYDATA_" + IntegrationTestUtils.TEST_START_DATE def setUp(self) -> None: self.set_expected_values() - if BaseSurveyTestSuite.SurveyTestSuite.TEST_OUT_PATH is None or not os.path.isdir( - BaseSurveyTestSuite.SurveyTestSuite.TEST_OUT_PATH): + if IntegrationTestUtils.TEST_OUT_PATH is None or not os.path.isdir( + IntegrationTestUtils.TEST_OUT_PATH): TestSurvey.write_temp_run_config_file() TestSurvey.unpack_dependencies() TestSurvey.run_survey_pipeline() else: - print(f"output in {BaseSurveyTestSuite.SurveyTestSuite.TEST_OUT_PATH} already written, skipping rerun") + print(f"output in {IntegrationTestUtils.TEST_OUT_PATH} already written, skipping rerun") @staticmethod @@ -35,23 +35,27 @@ class TestSurvey(BaseSurveyTestSuite.SurveyTestSuite): default_config = IntegrationTestUtils.DEFAULT_CONFIG_FILE_PATH default_config_dict: dict = IntegrationTestUtils.load_json_file(default_config) run_dict: dict = copy.deepcopy(default_config_dict) - # TestSurvey.TEST_OUT_PATH = run_dict['WorkspacePathout'] + prefix + os.sep - BaseSurveyTestSuite.SurveyTestSuite.TEST_OUT_PATH = IntegrationTestUtils.TEST_WORKSPACE_PATH + prefix + os.sep - run_dict['WorkspacePathout'] = TestSurvey.TEST_OUT_PATH - run_dict['WorkspacePath'] = TestSurvey.TEST_OUT_PATH - run_dict['Survey']['SkipServerDownload'] = True + IntegrationTestUtils.TEST_OUT_PATH = IntegrationTestUtils.TEST_WORKSPACE_PATH + prefix + os.sep + run_dict['WorkspacePathout'] = IntegrationTestUtils.TEST_OUT_PATH + run_dict['WorkspacePath'] = IntegrationTestUtils.TEST_OUT_PATH + run_dict['Environment']['WORK_PATH'] = IntegrationTestUtils.TEST_OUT_PATH + run_dict['Environment']['INPUT_PATH'] = IntegrationTestUtils.TEST_OUT_PATH + run_dict['Environment']['OUTPUT_PATH'] = IntegrationTestUtils.TEST_OUT_PATH run_dict['ServerName'] = '' # nothing, as local machine + # may be reusing a non-timestamped output file during development, so allow extant TEST_OUT_PATH + os.makedirs(IntegrationTestUtils.TEST_OUT_PATH, exist_ok = True) + IntegrationTestUtils.TEMP_CONFIG_FILE_NAME = IntegrationTestUtils.TEST_OUT_PATH + "temp_config.json" IntegrationTestUtils.write_json_file(run_dict, IntegrationTestUtils.TEMP_CONFIG_FILE_NAME) @staticmethod def unpack_dependencies(): - IntegrationTestUtils.unpack_zip(IntegrationTestUtils.EXAMPLE_SURVEY_FILE_PATH, TestSurvey.TEST_OUT_PATH) + IntegrationTestUtils.unpack_zip(IntegrationTestUtils.EXAMPLE_SURVEY_FILE_PATH, IntegrationTestUtils.TEST_OUT_PATH) @staticmethod def run_survey_pipeline(): component = 'Survey' - IntegrationTestUtils.run_unittest_pipeline(component, TestSurvey.TEST_START_DATE) + IntegrationTestUtils.run_unittest_pipeline(component, IntegrationTestUtils.TEST_START_DATE) if __name__ == '__main__': diff --git a/tests/integration/test_suites/advisory_test_suite.py b/tests/integration/test_suites/advisory_test_suite.py index 03b3f6c..f46695f 100644 --- a/tests/integration/test_suites/advisory_test_suite.py +++ b/tests/integration/test_suites/advisory_test_suite.py @@ -10,10 +10,6 @@ class BaseAdvisoryTestSuite: class AdvisoryTestSuite(unittest.TestCase): - TEST_OUT_PATH: str = None - TEST_START_DATE: str = None - TEST_JOB_DIR: str = None - @abc.abstractmethod def set_expected_values(self): self.EXPECTED_EA_IMAGE_COUNT = 0 @@ -22,18 +18,18 @@ class BaseAdvisoryTestSuite: def test_standard_run_input_status_success(self): - status_file_path = os.path.join(BaseAdvisoryTestSuite.AdvisoryTestSuite.TEST_OUT_PATH, BaseAdvisoryTestSuite.AdvisoryTestSuite.TEST_JOB_DIR, "STATUS_SUCCESS") + status_file_path = os.path.join(IntegrationTestUtils.TEST_OUT_PATH, IntegrationTestUtils.TEST_JOB_DIR, "STATUS_SUCCESS") success_file_exists: bool = os.path.isfile(status_file_path) self.assertTrue(success_file_exists) def test_standard_run_input_all_docs_produced(self): - east_africa_image_wildcard = os.path.join(BaseAdvisoryTestSuite.AdvisoryTestSuite.TEST_OUT_PATH, - BaseAdvisoryTestSuite.AdvisoryTestSuite.TEST_JOB_DIR, + east_africa_image_wildcard = os.path.join(IntegrationTestUtils.TEST_OUT_PATH, + IntegrationTestUtils.TEST_JOB_DIR, "tight-layout", "wheat_rust_advisory_template_EastAfrica_*.docx") - ethiopia_image_wildcard = os.path.join(BaseAdvisoryTestSuite.AdvisoryTestSuite.TEST_OUT_PATH, - BaseAdvisoryTestSuite.AdvisoryTestSuite.TEST_JOB_DIR, + ethiopia_image_wildcard = os.path.join(IntegrationTestUtils.TEST_OUT_PATH, + IntegrationTestUtils.TEST_JOB_DIR, "tight-layout", "wheat_rust_advisory_template_Ethiopia_*.docx") @@ -44,12 +40,12 @@ class BaseAdvisoryTestSuite: def test_standard_run_input_images_produced(self): - east_africa_image_wildcard = os.path.join(BaseAdvisoryTestSuite.AdvisoryTestSuite.TEST_OUT_PATH, - BaseAdvisoryTestSuite.AdvisoryTestSuite.TEST_JOB_DIR, + east_africa_image_wildcard = os.path.join(IntegrationTestUtils.TEST_OUT_PATH, + IntegrationTestUtils.TEST_JOB_DIR, "images", "*eastafrica*.png") - ethiopia_image_wildcard = os.path.join(BaseAdvisoryTestSuite.AdvisoryTestSuite.TEST_OUT_PATH, - BaseAdvisoryTestSuite.AdvisoryTestSuite.TEST_JOB_DIR, + ethiopia_image_wildcard = os.path.join(IntegrationTestUtils.TEST_OUT_PATH, + IntegrationTestUtils.TEST_JOB_DIR, "images", "*ethiopia*.png") @@ -60,8 +56,8 @@ class BaseAdvisoryTestSuite: def test_standard_run_input_shapefiles_produced(self): - east_africa_image_wildcard = os.path.join(BaseAdvisoryTestSuite.AdvisoryTestSuite.TEST_OUT_PATH, - BaseAdvisoryTestSuite.AdvisoryTestSuite.TEST_JOB_DIR, + east_africa_image_wildcard = os.path.join(IntegrationTestUtils.TEST_OUT_PATH, + IntegrationTestUtils.TEST_JOB_DIR, "images", "*eastafrica*.shp") diff --git a/tests/integration/test_suites/survey_test_suite.py b/tests/integration/test_suites/survey_test_suite.py index 0ab19ee..6c6804d 100644 --- a/tests/integration/test_suites/survey_test_suite.py +++ b/tests/integration/test_suites/survey_test_suite.py @@ -9,25 +9,21 @@ class BaseSurveyTestSuite: class SurveyTestSuite(unittest.TestCase): - TEST_OUT_PATH: str = None - TEST_START_DATE: str = None - TEST_JOB_DIR: str = None - @abc.abstractmethod def set_expected_values(self): pass def test_standard_run_input_status_success(self): - status_file_path = os.path.join(BaseSurveyTestSuite.SurveyTestSuite.TEST_OUT_PATH, - BaseSurveyTestSuite.SurveyTestSuite.TEST_JOB_DIR, "STATUS_SUCCESS") + status_file_path = os.path.join(IntegrationTestUtils.TEST_OUT_PATH, + IntegrationTestUtils.TEST_JOB_DIR, "STATUS_SUCCESS") success_file_exists: bool = os.path.isfile(status_file_path) self.assertTrue(success_file_exists) def test_standard_run_input_merged_survey_created(self): - status_file_path = os.path.join(BaseSurveyTestSuite.SurveyTestSuite.TEST_OUT_PATH, - BaseSurveyTestSuite.SurveyTestSuite.TEST_JOB_DIR, + status_file_path = os.path.join(IntegrationTestUtils.TEST_OUT_PATH, + IntegrationTestUtils.TEST_JOB_DIR, "ExportCSV", "Merged_SurveyData.csv") success_file_exists: bool = os.path.isfile(status_file_path) file_not_empty: bool = IntegrationTestUtils.check_file_not_empty(status_file_path) -- GitLab