diff --git a/tests/integration/full/full_test_advisory.py b/tests/integration/full/full_test_advisory.py
index a2cc5c7b3d7cfc4448f3852283430ab1a963b6a4..8c2c105524dd4072756703e8ceacd2fa295c714e 100644
--- a/tests/integration/full/full_test_advisory.py
+++ b/tests/integration/full/full_test_advisory.py
@@ -1,9 +1,5 @@
 import copy
 import os
-import sys
-from unittest import TestSuite, TestLoader
-
-from HtmlTestRunner import HTMLTestRunner
 
 from integration.partial.integration_test_utils import IntegrationTestUtils
 from integration.test_suites.advisory_test_suite import BaseAdvisoryTestSuite
@@ -21,13 +17,15 @@ class FullTestAdvisory(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):
         # if True:
             FullTestAdvisory.write_temp_run_config_files()
             FullTestAdvisory.run_dependent_pipelines()
             FullTestAdvisory.run_advisory_pipeline()
         else:
-            print(f"output in {BaseAdvisoryTestSuite.AdvisoryTestSuite.TEST_OUT_PATH} already written, skipping rerun")
+            string = f"output in {IntegrationTestUtils.TEST_OUT_PATH} already written, skipping rerun"
+            print(string)
+            i = 0
 
 
     @staticmethod
@@ -35,36 +33,36 @@ class FullTestAdvisory(BaseAdvisoryTestSuite.AdvisoryTestSuite):
         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)
-        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
         # we need to run the env suit pipeline as well
-        run_dict['Environment']['WORK_PATH'] = BaseAdvisoryTestSuite.AdvisoryTestSuite.TEST_OUT_PATH
-        run_dict['Environment']['INPUT_PATH'] = BaseAdvisoryTestSuite.AdvisoryTestSuite.TEST_OUT_PATH
-        run_dict['Environment']['OUTPUT_PATH'] = BaseAdvisoryTestSuite.AdvisoryTestSuite.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
 
         #make sure we activate server download
         run_dict['Survey']['SkipServerDownload'] = False
 
-        # survey_cred_file: str = run_dict['Survey']['ServerCredentialsFile']
-        # run_dict['Survey']['ServerCredentialsFile'] = survey_cred_file.replace("Cred-ODK-EIAR.json", "Cred-ODK-EIAR-NO-WRSIS.json")
-        # run_dict['Survey']['FormEdits'].pop('WRSIS', None)
+        survey_cred_file: str = run_dict['Survey']['ServerCredentialsFile']
+        run_dict['Survey']['ServerCredentialsFile'] = survey_cred_file.replace("Cred-ODK-EIAR.json", "Cred-ODK-EIAR-NO-WRSIS.json")
+        run_dict['Survey']['FormEdits'].pop('WRSIS', None)
 
         # may be reusing a non-timestamped output file during development, so allow extant TEST_OUT_PATH
-        os.makedirs(BaseAdvisoryTestSuite.AdvisoryTestSuite.TEST_OUT_PATH, exist_ok = True)
-        IntegrationTestUtils.TEMP_CONFIG_FILE_NAME = BaseAdvisoryTestSuite.AdvisoryTestSuite.TEST_OUT_PATH + "temp_config.json"
+        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 run_dependent_pipelines():
         IntegrationTestUtils.run_external_pipeline("Deposition",
-                                                   BaseAdvisoryTestSuite.AdvisoryTestSuite.TEST_START_DATE,
+                                                   IntegrationTestUtils.TEST_START_DATE,
                                                    IntegrationTestUtils.EMAIL_CRED_PATH)
         IntegrationTestUtils.run_external_pipeline("Environment",
-                                                   BaseAdvisoryTestSuite.AdvisoryTestSuite.TEST_START_DATE,
+                                                   IntegrationTestUtils.TEST_START_DATE,
                                                    IntegrationTestUtils.EMAIL_CRED_PATH)
 
-        previous_day_string: str = IntegrationTestUtils.get_day_before_as_string(BaseAdvisoryTestSuite.AdvisoryTestSuite.TEST_START_DATE)
+        previous_day_string: str = IntegrationTestUtils.get_day_before_as_string(IntegrationTestUtils.TEST_START_DATE)
         IntegrationTestUtils.run_external_pipeline("Survey",
                                                    previous_day_string,
                                                    IntegrationTestUtils.EMAIL_CRED_PATH)
@@ -72,40 +70,12 @@ class FullTestAdvisory(BaseAdvisoryTestSuite.AdvisoryTestSuite):
 
     @staticmethod
     def run_advisory_pipeline():
-        component = 'Advisory'
-        IntegrationTestUtils.run_unittest_pipeline(component, FullTestAdvisory.TEST_START_DATE)
+        IntegrationTestUtils.run_external_pipeline(BaseAdvisoryTestSuite.AdvisoryTestSuite.ADVISORY_COMPONENT_NAME,
+                                                   IntegrationTestUtils.TEST_START_DATE,
+                                                   IntegrationTestUtils.EMAIL_CRED_PATH)
 
 
 if __name__ == '__main__':
-
-    _parser = IntegrationTestUtils.build_arg_parser()
-
-    _args = _parser.parse_args()
-    _config_file: str = _args.config
-    _outdir: str = _args.outdir
-    _email_cred_path: str = _args.email_cred
-    _test_report_dir: str = _args.test_report_dir
-    _run_date_type: str = _args.run_date_type
-    _custom_run_date: str = _args.custom_run_date
-
-    IntegrationTestUtils.DEFAULT_CONFIG_FILE_PATH = _config_file
-
-    nowstring: str = IntegrationTestUtils.get_now_string()
-    # prefix: str = "temp_advisory_" + nowstring
-    prefix: str = "temp_advisory"
-    BaseAdvisoryTestSuite.AdvisoryTestSuite.TEST_OUT_PATH = _outdir + prefix + os.sep
-    IntegrationTestUtils.EMAIL_CRED_PATH = _email_cred_path
-
-    BaseAdvisoryTestSuite.AdvisoryTestSuite.TEST_START_DATE = IntegrationTestUtils.generate_run_date(_run_date_type, _custom_run_date)
-
-    BaseAdvisoryTestSuite.AdvisoryTestSuite.TEST_JOB_DIR = "ADVISORY_" + BaseAdvisoryTestSuite.AdvisoryTestSuite.TEST_START_DATE
-
-    #  Now set the sys.argv to the unittest_args (leaving sys.argv[0] alone)
-    sys.argv[1:] = _args.unittest_args
-    tests: TestSuite = TestLoader().loadTestsFromTestCase(FullTestAdvisory)
-
-    if _test_report_dir is None:
-        _test_report_dir = BaseAdvisoryTestSuite.AdvisoryTestSuite.TEST_JOB_DIR
-
-    runner = HTMLTestRunner(output=_test_report_dir, combine_reports = True)
-    runner.run(tests)
+    IntegrationTestUtils.run_fill_integration_test_pipeline(FullTestAdvisory,
+                                                            test_prefix = "advisory",
+                                                            processor_dir = BaseAdvisoryTestSuite.AdvisoryTestSuite.ADVISORY_PROCESSOR_DIR)
diff --git a/tests/integration/full/full_test_deposition.py b/tests/integration/full/full_test_deposition.py
index 953516d3cdb9362731821d3570e0e74bc0887f3e..c6692a4aca3f6e08ab7999cd63b217e607b68a0e 100644
--- a/tests/integration/full/full_test_deposition.py
+++ b/tests/integration/full/full_test_deposition.py
@@ -43,12 +43,12 @@ class FullTestDeposition(BaseDepoTestSuite.DepoTestSuite):
 
     @staticmethod
     def run_depo_pipeline():
-        component = 'Deposition'
-        IntegrationTestUtils.run_external_pipeline(component,
+        IntegrationTestUtils.run_external_pipeline(BaseDepoTestSuite.DepoTestSuite.DEPO_COMPONENT_NAME,
                                                    IntegrationTestUtils.TEST_START_DATE,
                                                    IntegrationTestUtils.EMAIL_CRED_PATH)
 
 
 if __name__ == '__main__':
-    # note the job prefix needs to match
-    IntegrationTestUtils.rune(FullTestDeposition, "DEPOSITION")
+    IntegrationTestUtils.run_fill_integration_test_pipeline(FullTestDeposition,
+                                                            test_prefix = "deposition",
+                                                            processor_dir = BaseDepoTestSuite.DepoTestSuite.DEPO_PROCESSOR_DIR)
diff --git a/tests/integration/full/full_test_env_suit.py b/tests/integration/full/full_test_env_suit.py
index 07c8ada93cb91f8c71f1cf43802968f72e77f3ac..5505e05d4d7ecaeee1fca1f0d6d586c7123e76c6 100644
--- a/tests/integration/full/full_test_env_suit.py
+++ b/tests/integration/full/full_test_env_suit.py
@@ -1,9 +1,5 @@
 import copy
 import os
-import sys
-from unittest import TestSuite, TestLoader
-
-from HtmlTestRunner import HTMLTestRunner
 
 from integration.partial.integration_test_utils import IntegrationTestUtils
 from integration.test_suites.env_suit_test_suite import BaseEnvSuitTestSuite
@@ -12,8 +8,8 @@ from integration.test_suites.env_suit_test_suite import BaseEnvSuitTestSuite
 class FullTestEnvSuit(BaseEnvSuitTestSuite.EnvSuitTestSuite):
 
     def set_expected_values(self):
-        self.EA_CSV_COUNT: int = 18
-        self.ETH_CSV_COUNT: int = 18
+        self.EA_CSV_COUNT: int = 30
+        self.ETH_CSV_COUNT: int = 30
         self.EA_PNG_COUNT: int = 6
         self.ETH_PNG_COUNT: int = 6
 
@@ -21,12 +17,12 @@ class FullTestEnvSuit(BaseEnvSuitTestSuite.EnvSuitTestSuite):
 
         self.set_expected_values()
 
-        if BaseEnvSuitTestSuite.EnvSuitTestSuite.TEST_OUT_PATH is None or not os.path.isdir(
-                BaseEnvSuitTestSuite.EnvSuitTestSuite.TEST_OUT_PATH):
+        if IntegrationTestUtils.TEST_OUT_PATH is None or not os.path.isdir(
+                IntegrationTestUtils.TEST_OUT_PATH):
             FullTestEnvSuit.write_temp_run_config_file()
             FullTestEnvSuit.run_env_pipeline()
         else:
-            print(f"output in {BaseEnvSuitTestSuite.EnvSuitTestSuite.TEST_OUT_PATH} already written, skipping rerun")
+            print(f"output in {IntegrationTestUtils.TEST_OUT_PATH} already written, skipping rerun")
 
 
     @staticmethod
@@ -34,16 +30,16 @@ class FullTestEnvSuit(BaseEnvSuitTestSuite.EnvSuitTestSuite):
         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)
-        run_dict['WorkspacePathout'] = FullTestEnvSuit.TEST_OUT_PATH
-        run_dict['WorkspacePath'] = FullTestEnvSuit.TEST_OUT_PATH
-        run_dict['Environment']['WORK_PATH'] = FullTestEnvSuit.TEST_OUT_PATH
-        run_dict['Environment']['INPUT_PATH'] = FullTestEnvSuit.TEST_OUT_PATH
-        run_dict['Environment']['OUTPUT_PATH'] = FullTestEnvSuit.TEST_OUT_PATH
+        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['Environment']['EWS-Plotting']['Ethiopia']['FilterForCountry'] = "True"
         run_dict['Environment']['EWS-Plotting']['Kenya']['FilterForCountry'] = "True"
 
-        os.makedirs(BaseEnvSuitTestSuite.EnvSuitTestSuite.TEST_OUT_PATH)
-        IntegrationTestUtils.TEMP_CONFIG_FILE_NAME = BaseEnvSuitTestSuite.EnvSuitTestSuite.TEST_OUT_PATH + "temp_config.json"
+        os.makedirs(IntegrationTestUtils.TEST_OUT_PATH)
+        IntegrationTestUtils.TEMP_CONFIG_FILE_NAME = IntegrationTestUtils.TEST_OUT_PATH + "temp_config.json"
         IntegrationTestUtils.write_json_file(run_dict, IntegrationTestUtils.TEMP_CONFIG_FILE_NAME)
 
 
@@ -51,40 +47,12 @@ class FullTestEnvSuit(BaseEnvSuitTestSuite.EnvSuitTestSuite):
     def run_env_pipeline():
         component = 'Environment'
         IntegrationTestUtils.run_external_pipeline(component,
-                                                   FullTestEnvSuit.TEST_START_DATE,
+                                                   IntegrationTestUtils.TEST_START_DATE,
                                                    IntegrationTestUtils.EMAIL_CRED_PATH)
 
 
 if __name__ == '__main__':
 
-    _parser = IntegrationTestUtils.build_arg_parser()
-
-    _args = _parser.parse_args()
-    _config_file: str = _args.config
-    _outdir: str = _args.outdir
-    _email_cred_path: str = _args.email_cred
-    _test_report_dir: str = _args.test_report_dir
-    _run_date_type: str = _args.run_date_type
-    _custom_run_date: str = _args.custom_run_date
-
-    IntegrationTestUtils.DEFAULT_CONFIG_FILE_PATH = _config_file
-
-    nowstring: str = IntegrationTestUtils.get_now_string()
-    prefix: str = "temp_env_" + nowstring
-    # prefix: str = "temp_env"
-    BaseEnvSuitTestSuite.EnvSuitTestSuite.TEST_OUT_PATH = _outdir + prefix + os.sep
-    IntegrationTestUtils.EMAIL_CRED_PATH = _email_cred_path
-
-    BaseEnvSuitTestSuite.EnvSuitTestSuite.TEST_START_DATE = IntegrationTestUtils.generate_run_date(_run_date_type,
-                                                                                                   _custom_run_date)
-    BaseEnvSuitTestSuite.EnvSuitTestSuite.TEST_JOB_DIR = "ENVIRONMENT_2.0_" + FullTestEnvSuit.TEST_START_DATE
-
-    #  Now set the sys.argv to the unittest_args (leaving sys.argv[0] alone)
-    sys.argv[1:] = _args.unittest_args
-    tests: TestSuite = TestLoader().loadTestsFromTestCase(FullTestEnvSuit)
-
-    if _test_report_dir is None:
-        _test_report_dir = BaseEnvSuitTestSuite.EnvSuitTestSuite.TEST_JOB_DIR
-
-    runner = HTMLTestRunner(output=_test_report_dir, combine_reports = True)
-    runner.run(tests)
+    IntegrationTestUtils.run_fill_integration_test_pipeline(FullTestEnvSuit,
+                                                            test_prefix = "env",
+                                                            processor_dir = BaseEnvSuitTestSuite.EnvSuitTestSuite.ENV_PROCESSOR_DIR)
diff --git a/tests/integration/partial/integration_test_utils.py b/tests/integration/partial/integration_test_utils.py
index 53c747720c025f6f88e3ec415ec48499e09bea41..4088edf9b60f623efe176b6c3829015d1785d9dd 100644
--- a/tests/integration/partial/integration_test_utils.py
+++ b/tests/integration/partial/integration_test_utils.py
@@ -41,7 +41,10 @@ class IntegrationTestUtils:
         return parser
 
     @staticmethod
-    def rune(test_case: [TestCase], job_prefix: str):
+    def run_fill_integration_test_pipeline(test_case: [TestCase],
+                                           test_prefix: str,
+                                           processor_dir: str):
+
         _parser = IntegrationTestUtils.build_arg_parser()
 
         _args = _parser.parse_args()
@@ -55,8 +58,8 @@ class IntegrationTestUtils:
         IntegrationTestUtils.DEFAULT_CONFIG_FILE_PATH = _config_file
 
         nowstring: str = IntegrationTestUtils.get_now_string()
-        prefix: str = f"temp_{job_prefix}_" + nowstring
-        # prefix: str = f"temp_{job_prefix}"
+        prefix: str = f"temp_{test_prefix}_" + nowstring
+        # prefix: str = f"temp_{test_prefix}"
         IntegrationTestUtils.TEST_OUT_PATH = _outdir + prefix + os.sep
         IntegrationTestUtils.EMAIL_CRED_PATH = _email_cred_path
 
@@ -64,7 +67,7 @@ class IntegrationTestUtils:
                                                                                       _custom_run_date)
 
         IntegrationTestUtils.TEST_JOB_DIR = os.path.join(IntegrationTestUtils.TEST_OUT_PATH,
-                                                         f"{job_prefix}_" +
+                                                         f"{processor_dir}_" +
                                                          IntegrationTestUtils.TEST_START_DATE)
 
         #  Now set the sys.argv to the unittest_args (leaving sys.argv[0] alone)
diff --git a/tests/integration/test_suites/advisory_test_suite.py b/tests/integration/test_suites/advisory_test_suite.py
index f46695f8869c8ca303c4f8f2758495babeca464f..afd3fbfacd646ecbf2cf93095b71d6b954612dbf 100644
--- a/tests/integration/test_suites/advisory_test_suite.py
+++ b/tests/integration/test_suites/advisory_test_suite.py
@@ -10,6 +10,15 @@ class BaseAdvisoryTestSuite:
 
     class AdvisoryTestSuite(unittest.TestCase):
 
+        """
+        the name passed to the Processor.py to define the component
+        """
+        ADVISORY_COMPONENT_NAME = "Advisory"
+        """
+        the prefix of the directory created by thr Processor.py, e.g. DEPOSITION_2020-01-01
+        """
+        ADVISORY_PROCESSOR_DIR = "ADVISORY"
+
         @abc.abstractmethod
         def set_expected_values(self):
             self.EXPECTED_EA_IMAGE_COUNT = 0
diff --git a/tests/integration/test_suites/depo_test_suite.py b/tests/integration/test_suites/depo_test_suite.py
index 50cbdff560a9cf9c2eb40fd455a7ac16c6198e27..15f88ea5994fbe13901254faff5e141781ceabca 100644
--- a/tests/integration/test_suites/depo_test_suite.py
+++ b/tests/integration/test_suites/depo_test_suite.py
@@ -10,6 +10,15 @@ class BaseDepoTestSuite:
 
     class DepoTestSuite(unittest.TestCase):
 
+        """
+        the name passed to the Processor.py to define the component
+        """
+        DEPO_COMPONENT_NAME = "Deposition"
+        """
+        the prefix of the directory created by thr Processor.py, e.g. DEPOSITION_2020-01-01
+        """
+        DEPO_PROCESSOR_DIR = "DEPOSITION"
+
         @abc.abstractmethod
         def set_expected_values(self):
             """
diff --git a/tests/integration/test_suites/env_suit_test_suite.py b/tests/integration/test_suites/env_suit_test_suite.py
index 2552dc4eef06c9e3a71fcc6d11ca1223e0930607..54d7f2cbee9cd152d656367a1e96af329fab32d7 100644
--- a/tests/integration/test_suites/env_suit_test_suite.py
+++ b/tests/integration/test_suites/env_suit_test_suite.py
@@ -10,6 +10,15 @@ class BaseEnvSuitTestSuite:
 
     class EnvSuitTestSuite(unittest.TestCase):
 
+        """
+        the name passed to the Processor.py to define the component
+        """
+        ENV_COMPONENT_NAME = "Environment"
+        """
+        the prefix of the directory created by thr Processor.py, e.g. DEPOSITION_2020-01-01
+        """
+        ENV_PROCESSOR_DIR = "ENVIRONMENT_2.0"
+
         @abc.abstractmethod
         def set_expected_values(self):
             """