From 127c062fcf68753d2dabe73d1f50f110c1f4628c Mon Sep 17 00:00:00 2001 From: "Bruno P. Kinoshita" Date: Tue, 21 Mar 2023 16:40:15 +0100 Subject: [PATCH] Move all tests to test/unit folder --- .../output_examples/__init__.py | 0 .../platform_monitor/platform_utils.py | 8 +-- simple_test.py | 56 ------------------- .../unit/test_database_managers.py | 17 +++--- .../test.py => test/unit/test_history.py | 9 +-- .../unit/test_platform_monitor.py | 4 +- .../test.py => test/unit/test_statistics.py | 1 + .../history => test/unit}/test_strategies.py | 6 +- 8 files changed, 23 insertions(+), 78 deletions(-) create mode 100644 autosubmit/history/platform_monitor/output_examples/__init__.py delete mode 100644 simple_test.py rename autosubmit/history/database_managers/test.py => test/unit/test_database_managers.py (97%) rename autosubmit/history/test.py => test/unit/test_history.py (97%) rename autosubmit/history/platform_monitor/test.py => test/unit/test_platform_monitor.py (96%) rename autosubmit/statistics/test.py => test/unit/test_statistics.py (96%) rename {autosubmit/history => test/unit}/test_strategies.py (96%) diff --git a/autosubmit/history/platform_monitor/output_examples/__init__.py b/autosubmit/history/platform_monitor/output_examples/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/autosubmit/history/platform_monitor/platform_utils.py b/autosubmit/history/platform_monitor/platform_utils.py index 8dd70b8b1..433e654ec 100644 --- a/autosubmit/history/platform_monitor/platform_utils.py +++ b/autosubmit/history/platform_monitor/platform_utils.py @@ -63,8 +63,6 @@ def try_parse_time_to_timestamp(input_): return 0 def read_example(example_name): - source_path = "autosubmit/history/platform_monitor/output_examples/" - file_path = os.path.join(source_path, example_name) - with open(file_path, "r") as fp: - output_ssh = fp.read() - return output_ssh \ No newline at end of file + import importlib.resources as pkg_resources + from autosubmit.history.platform_monitor import output_examples + return pkg_resources.read_text(output_examples, example_name) \ No newline at end of file diff --git a/simple_test.py b/simple_test.py deleted file mode 100644 index c137929be..000000000 --- a/simple_test.py +++ /dev/null @@ -1,56 +0,0 @@ -# #!/usr/bin/env python3 -# import datetime -# import os -# import time -# import sys -# import inspect -# sys.path.insert(0, os.path.abspath('.')) -# from autosubmit.autosubmit import Autosubmit -# from autosubmitconfigparser.config.config_common import AutosubmitConfig, BasicConfig -# from bscearth.utils.config_parser import ConfigParserFactory -# from autosubmit.job.job_list import JobList -# from autosubmit.database.db_jobdata import JobDataStructure -# from bscearth.utils.log import Log -# from autosubmit.autosubmit import Autosubmit -# from pyparsing import nestedExpr - -# text = "[ 1960(0605-1206) [ fc0 [1 2 3 4] fc1 [1] ] 16651101 [ fc0 [1-30 31 32] ] ]" -# out = Autosubmit._create_json(text) -# print(out) - -# def test_retrieve_energy(): -# BasicConfig.read() -# expid = "a2ze" -# job_name = "a2ze_REMOTE_COMPILE" -# as_conf = AutosubmitConfig( -# expid, BasicConfig, ConfigParserFactory()) -# if not as_conf.check_conf_files(): -# Log.critical('Can not run with invalid configuration') -# return False -# submitter = Autosubmit._get_submitter(as_conf) -# submitter.load_platforms(as_conf) -# job_list = Autosubmit.load_job_list( -# expid, as_conf, notransitive=False) -# Autosubmit._load_parameters( -# as_conf, job_list, submitter.platforms) - -# for job in job_list.get_job_list(): -# if job.platform_name is None: -# job.platform_name = "marenostrum4" -# # noinspection PyTypeChecker -# job._platform = submitter.platforms[job.platform_name.lower( -# )] - -# list_jobs = job_list.get_job_list() -# job_honk = [job for job in list_jobs if job.name == job_name][0] -# job_honk.write_end_time(True) - - -# def main(): -# job_structure = JobDataStructure('a29z') -# # print(job_structure._select_pragma_version()) -# return None - - -# if __name__ == "__main__": -# main() diff --git a/autosubmit/history/database_managers/test.py b/test/unit/test_database_managers.py similarity index 97% rename from autosubmit/history/database_managers/test.py rename to test/unit/test_database_managers.py index ed912c5df..9999fe948 100644 --- a/autosubmit/history/database_managers/test.py +++ b/test/unit/test_database_managers.py @@ -21,8 +21,8 @@ import time import random import os from shutil import copy2 -from .experiment_history_db_manager import ExperimentHistoryDbManager -from .experiment_status_db_manager import ExperimentStatusDbManager +from autosubmit.history.database_managers.experiment_history_db_manager import ExperimentHistoryDbManager +from autosubmit.history.database_managers.experiment_status_db_manager import ExperimentStatusDbManager from autosubmit.history.data_classes.experiment_run import ExperimentRun from autosubmit.history.data_classes.job_data import JobData from autosubmitconfigparser.config.basicconfig import BasicConfig @@ -35,6 +35,7 @@ BasicConfig.read() JOBDATA_DIR = BasicConfig.JOBDATA_DIR LOCAL_ROOT_DIR = BasicConfig.LOCAL_ROOT_DIR +@unittest.skip('TODO: looks like another test that used actual experiments data') class TestExperimentStatusDatabaseManager(unittest.TestCase): """ Covers Experiment Status Database Manager """ def setUp(self): @@ -47,7 +48,7 @@ class TestExperimentStatusDatabaseManager(unittest.TestCase): self.assertIsNone(exp_status_row_none) exp_row_direct = self.exp_status_db.get_experiment_status_row_by_exp_id(exp_status_row.exp_id) self.assertTrue(exp_status_row.exp_id == exp_row_direct.exp_id) - + def test_update_exp_status(self): self.exp_status_db.update_exp_status(EXPID, "RUNNING") @@ -66,7 +67,7 @@ class TestExperimentStatusDatabaseManager(unittest.TestCase): experiment_status = self.exp_status_db.get_experiment_status_row_by_expid(EXPID_NONE) self.assertIsNone(experiment_status) - +@unittest.skip('TODO: looks like another test that used actual experiments data') class TestExperimentHistoryDbManager(unittest.TestCase): """ Covers Experiment History Database Manager and Data Models """ def setUp(self): @@ -90,7 +91,7 @@ class TestExperimentHistoryDbManager(unittest.TestCase): def test_pragma(self): self.assertTrue(self.experiment_database._get_pragma_version() == 17) # Update version on changes - + def test_get_job_data(self): job_data = self.experiment_database._get_job_data_last_by_name("a29z_20000101_fc0_1_SIM") self.assertTrue(len(job_data) > 0) @@ -108,7 +109,7 @@ class TestExperimentHistoryDbManager(unittest.TestCase): job_data = self.experiment_database.get_job_data_all() self.assertTrue(len(job_data) > 0) - + def test_insert_and_delete_experiment_run(self): new_run = ExperimentRun(19) new_id = self.experiment_database._insert_experiment_run(new_run) @@ -118,7 +119,7 @@ class TestExperimentHistoryDbManager(unittest.TestCase): self.experiment_database.delete_experiment_run(new_id) last_experiment_run = self.experiment_database.get_experiment_run_dc_with_max_id() self.assertTrue(new_id != last_experiment_run.run_id) - + def test_insert_and_delete_job_data(self): max_run_id = self.experiment_database.get_experiment_run_dc_with_max_id().run_id new_job_data_name = "test_001_name_{0}".format(int(time.time())) @@ -189,7 +190,7 @@ class TestExperimentHistoryDbManager(unittest.TestCase): self.assertTrue(job_val.rowstatus == rowstatus) self.assertTrue(job_val.id == _id) self.experiment_database.update_many_job_data_change_status(backup_changes) - + def test_job_data_maxcounter(self): new_job_data = ExperimentHistoryDbManager(EXPID_NONE, JOBDATA_DIR) new_job_data.initialize() diff --git a/autosubmit/history/test.py b/test/unit/test_history.py similarity index 97% rename from autosubmit/history/test.py rename to test/unit/test_history.py index 83a826077..68495d8e9 100644 --- a/autosubmit/history/test.py +++ b/test/unit/test_history.py @@ -22,11 +22,11 @@ import os import time from shutil import copy2 from collections import namedtuple -from .experiment_history import ExperimentHistory -from .internal_logging import Logging -from .strategies import StraightWrapperAssociationStrategy, GeneralizedWrapperDistributionStrategy, PlatformInformationHandler +from autosubmit.history.experiment_history import ExperimentHistory +from autosubmit.history.internal_logging import Logging +from autosubmit.history.strategies import StraightWrapperAssociationStrategy, GeneralizedWrapperDistributionStrategy, PlatformInformationHandler from autosubmitconfigparser.config.basicconfig import BasicConfig -from .platform_monitor.slurm_monitor import SlurmMonitor +from autosubmit.history.platform_monitor.slurm_monitor import SlurmMonitor EXPID_TT00_SOURCE = "test_database.db~" EXPID_TT01_SOURCE = "test_database_no_run.db~" EXPID = "tt00" @@ -36,6 +36,7 @@ JOBDATA_DIR = BasicConfig.JOBDATA_DIR LOCAL_ROOT_DIR = BasicConfig.LOCAL_ROOT_DIR job = namedtuple("Job", ["name", "date", "member", "status_str", "children"]) +@unittest.skip('TODO: another test that uses actual data. See if there is anything useful, and extract into functional/integration/unit tests that run on any machine') class TestExperimentHistory(unittest.TestCase): # @classmethod # def setUpClass(cls): diff --git a/autosubmit/history/platform_monitor/test.py b/test/unit/test_platform_monitor.py similarity index 96% rename from autosubmit/history/platform_monitor/test.py rename to test/unit/test_platform_monitor.py index 68feafb48..f2813cf66 100644 --- a/autosubmit/history/platform_monitor/test.py +++ b/test/unit/test_platform_monitor.py @@ -17,8 +17,8 @@ # along with Autosubmit. If not, see . import unittest -from . import platform_utils as utils -from .slurm_monitor import SlurmMonitor +from autosubmit.history.platform_monitor import platform_utils as utils +from autosubmit.history.platform_monitor.slurm_monitor import SlurmMonitor class TestSlurmMonitor(unittest.TestCase): def test_reader_on_simple_wrapper_example_1(self): diff --git a/autosubmit/statistics/test.py b/test/unit/test_statistics.py similarity index 96% rename from autosubmit/statistics/test.py rename to test/unit/test_statistics.py index 64bf893b8..1ee5c7bec 100644 --- a/autosubmit/statistics/test.py +++ b/test/unit/test_statistics.py @@ -11,6 +11,7 @@ from autosubmit.job.job_list import JobList import autosubmit.database.db_structure as DbStructure # from autosubmit.database.db_jobdata import JobDataStructure, ExperimentGraphDrawing +@unittest.skip("TODO: looks like this test was used by devs to run an existing experiment a49z") class TestStatistics(unittest.TestCase): def setUp(self): self.expid = "a49z" diff --git a/autosubmit/history/test_strategies.py b/test/unit/test_strategies.py similarity index 96% rename from autosubmit/history/test_strategies.py rename to test/unit/test_strategies.py index 76321eaa5..6be6a43f6 100644 --- a/autosubmit/history/test_strategies.py +++ b/test/unit/test_strategies.py @@ -18,9 +18,9 @@ import unittest from collections import namedtuple -from .data_classes.job_data import JobData -from .strategies import PlatformInformationHandler, TwoDimWrapperDistributionStrategy -from .platform_monitor.slurm_monitor import SlurmMonitor +from autosubmit.history.data_classes.job_data import JobData +from autosubmit.history.strategies import PlatformInformationHandler, TwoDimWrapperDistributionStrategy +from autosubmit.history.platform_monitor.slurm_monitor import SlurmMonitor job_dc = namedtuple("Job", ["job_name", "date", "member", "status_str", "children", "children_list"]) class Test2DWrapperDistributionStrategy(unittest.TestCase): -- GitLab