FAQ | This is a LIVE service | Changelog

Skip to content
Snippets Groups Projects
test_advisory.py 4.08 KiB
Newer Older
L. Bower's avatar
L. Bower committed
import copy
L. Bower's avatar
L. Bower committed
import glob
L. Bower's avatar
L. Bower committed
import os
import unittest

L. Bower's avatar
L. Bower committed
from integration.partial.integration_test_utils import IntegrationTestUtils
L. Bower's avatar
L. Bower committed


L. Bower's avatar
L. Bower committed
class TestAdvisory(unittest.TestCase):
L. Bower's avatar
L. Bower committed

L. Bower's avatar
L. Bower committed
    TEST_OUT_PATH: str = "not_set"
    TEST_JOB_DIR: str = "ADVISORY_" + TEST_START_DATE
L. Bower's avatar
L. Bower committed

L. Bower's avatar
L. Bower committed
    @classmethod
    def setUpClass(cls) -> None:
        TestAdvisory.write_temp_run_config_files()
        TestAdvisory.unpack_dependencies()
L. Bower's avatar
L. Bower committed
        TestAdvisory.run_advisory_pipeline()
L. Bower's avatar
L. Bower committed

L. Bower's avatar
L. Bower committed

    @staticmethod
L. Bower's avatar
L. Bower committed
        nowstring: str = IntegrationTestUtils.get_now_string()
        prefix: str = "temp_advisory_" + nowstring
        # prefix: str = ""

L. Bower's avatar
L. Bower committed
        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)
L. Bower's avatar
L. Bower committed
        TestAdvisory.TEST_OUT_PATH = run_dict['WorkspacePathout'] + prefix + os.sep
        run_dict['WorkspacePathout'] = TestAdvisory.TEST_OUT_PATH
        run_dict['WorkspacePath'] = TestAdvisory.TEST_OUT_PATH
L. Bower's avatar
L. Bower committed
        run_dict['ServerName'] = ''  # nothing, as local machine

        IntegrationTestUtils.write_json_file(run_dict, IntegrationTestUtils.TEMP_CONFIG_FILE_PATH)

L. Bower's avatar
L. Bower committed

L. Bower's avatar
L. Bower committed
        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)
L. Bower's avatar
L. Bower committed


    @staticmethod
    def run_advisory_pipeline():
        component = 'Advisory'
L. Bower's avatar
L. Bower committed
        IntegrationTestUtils.run_unittest_pipeline(component, TestAdvisory.TEST_START_DATE)
L. Bower's avatar
L. Bower committed

L. Bower's avatar
L. Bower committed
    def test_standard_run_input_status_success(self):
L. Bower's avatar
L. Bower committed
        status_file_path = os.path.join(TestAdvisory.TEST_OUT_PATH, TestAdvisory.TEST_JOB_DIR, "STATUS_SUCCESS")
L. Bower's avatar
L. Bower committed
        success_file_exists: bool = os.path.isfile(status_file_path)
        self.assertTrue(success_file_exists)
L. Bower's avatar
L. Bower committed

L. Bower's avatar
L. Bower committed
    def test_standard_run_input_all_docs_produced(self):

L. Bower's avatar
L. Bower committed
        east_africa_image_path = os.path.join(TestAdvisory.TEST_OUT_PATH, TestAdvisory.TEST_JOB_DIR,
L. Bower's avatar
L. Bower committed
                                              "tight-layout",
                                              "wheat_rust_advisory_template_EastAfrica_20221001.docx")
L. Bower's avatar
L. Bower committed
        ethiopia_image_path = os.path.join(TestAdvisory.TEST_OUT_PATH, TestAdvisory.TEST_JOB_DIR,
L. Bower's avatar
L. Bower committed
                                           "tight-layout",
                                           "wheat_rust_advisory_template_Ethiopia_20221001.docx")

        ea_file_exists: bool = os.path.isfile(east_africa_image_path)
        eth_file_exists: bool = os.path.isfile(ethiopia_image_path)
        self.assertTrue(ea_file_exists)
        self.assertTrue(eth_file_exists)
L. Bower's avatar
L. Bower committed

L. Bower's avatar
L. Bower committed
    def test_standard_run_input_images_produced(self):

        east_africa_image_wildcard = os.path.join(TestAdvisory.TEST_OUT_PATH, TestAdvisory.TEST_JOB_DIR,
                                                  "images",
                                                  "*eastafrica*.png")
        ethiopia_image_wildcard = os.path.join(TestAdvisory.TEST_OUT_PATH, TestAdvisory.TEST_JOB_DIR,
                                               "images",
                                               "*ethiopia*.png")

        africa_image_count: int = len(glob.glob(east_africa_image_wildcard))
        ethiopia_image_count: int = len(glob.glob(ethiopia_image_wildcard))
        self.assertEqual(3, africa_image_count)
        self.assertEqual(3, ethiopia_image_count)

    def test_standard_run_input_shapefiles_produced(self):

        east_africa_image_wildcard = os.path.join(TestAdvisory.TEST_OUT_PATH, TestAdvisory.TEST_JOB_DIR,
                                                  "images",
                                                  "*eastafrica*.shp")

        africa_image_count: int = len(glob.glob(east_africa_image_wildcard))
        self.assertEqual(3, africa_image_count)

L. Bower's avatar
L. Bower committed

if __name__ == '__main__':
    unittest.main()