예제 #1
0
class TestProject(unittest.TestCase):
    def setUp(self):
        self.current_dir = os.getcwd()
        print(s.top_path_dict)
        self.project = Project('sub_folder')

    def tearDown(self):
        self.project.remove()

    def test_repr(self):
        self.assertEqual('[]', self.project.__repr__())
        pr_down_one = self.project['..']
        pr_down_two = self.project['../..']
        pr_down_twice = self.project['..']['..']
        self.assertEqual(pr_down_two.__repr__(), pr_down_twice.__repr__())
        self.assertEqual(
            str(
                sorted([
                    directory for directory in os.listdir('.')
                    if not os.path.isfile(os.path.join('.', directory))
                ])), pr_down_one.__repr__())
        self.assertEqual(
            str(
                sorted([
                    directory for directory in os.listdir('..')
                    if not os.path.isfile(os.path.join('..', directory))
                ])), pr_down_two.__repr__())
        self.assertEqual(pr_down_two.__repr__(), pr_down_twice.__repr__())
예제 #2
0
 def tearDownClass(cls):
     project = Project('testing_copyto')
     sub_project = project.open('sub_project_ex')
     sub_project.remove()
     sub_project = project.open('sub_project')
     sub_project.remove()
     s.close_connection()
     os.remove('copyto.db')
예제 #3
0
    def __init__(self, working_directory, job_id, debug=False):
        self.working_directory = working_directory

        pr = Project(path=working_directory)
        self.job = pr.load(job_id)

        # setup logger
        self._logger = self.setup_logger(debug=debug)
예제 #4
0
    def __init__(self, db, job_id=None, db_entry=None, user=None):
        if not db_entry:
            db_entry = db.get_item_by_id(job_id)
        if db_entry is None:
            raise ValueError("job ID {0} does not exist!".format(job_id))

        job_name = db_entry["job"]

        h5_path = None
        sub_job = db_entry["subjob"]

        if sub_job is not None:
            if len(sub_job.strip()) > 0:
                h5_path = '/'.join(sub_job.split('/')[:-1])
        hdf5_file = sub_job.split('/')[1] + '.h5'

        gp = GenericPath(root_path=db_entry["projectpath"],
                         project_path=db_entry["project"])
        hdf_project = ProjectHDFio(project=Project(path=gp, user=user),
                                   file_name=hdf5_file,
                                   h5_path=h5_path,
                                   mode="r")
        super(JobPath, self).__init__(hdf_project, job_name)

        self.__name__ = db_entry["hamilton"]
        self.__version__ = db_entry["hamversion"]

        if 'id' in db_entry:
            self._job_id = db_entry["id"]
        self._status = db_entry["status"]
        self._master_id = db_entry["masterid"]
        self._parent_id = db_entry["parentid"]
예제 #5
0
    def _create_project_from_hdf5(self):
        """
        Internal function to create a pyiron project pointing to the directory where the HDF5 file is located.

        Returns:
            Project: pyiron project object
        """
        from pyiron_base.project import Project
        return Project(path=self.file_path)
예제 #6
0
 def setUpClass(cls):
     cls.project = Project('testing_copyto')
예제 #7
0
 def tearDownClass(cls):
     project = Project('jobs_testing')
     project.remove(enforce=True)
     s.close_connection()
     os.remove('testing_jobs.db')
예제 #8
0
 def setUp(self):
     self.project = Project('jobs_testing')
예제 #9
0
 def setUp(self):
     self.project = Project('test_genericjob')
예제 #10
0
class TestGenericJob(unittest.TestCase):
    def setUp(self):
        self.project = Project('test_genericjob')

    @classmethod
    def tearDownClass(cls):
        s.close_connection()
        os.remove('genericjob.db')

    def test_db_entry(self):
        ham = self.project.create_job('ScriptJob', "job_single_debug")
        db_entry = ham.db_entry()
        self.assertEqual(db_entry['project'], ham.project_hdf5.project_path)
        self.assertEqual(db_entry['hamilton'], 'Script')
        self.assertEqual(db_entry['hamversion'], ham.version)
        self.assertEqual(db_entry['status'], ham.status.string)
        self.assertEqual(db_entry['job'], ham.job_name)
        ham.save()
        ham.remove()

    def test_id(self):
        pass

    def test_parent_id(self):
        pass

    def test_master_id(self):
        pass

    def test_child_ids(self):
        pass

    def test_child_ids_running(self):
        pass

    def test_child_ids_finished(self):
        pass

    def test_index(self):
        pass

    def test_job_name(self):
        cwd = os.getcwd().replace('\\', '/')
        ham = self.project.create_job('ScriptJob', "job_single_debug")
        self.assertEqual('job_single_debug', ham.job_name)
        self.assertEqual('/job_single_debug', ham.project_hdf5.h5_path)
        self.assertEqual(cwd + '/test_genericjob/job_single_debug.h5',
                         ham.project_hdf5.file_name)
        ham.job_name = 'job_single_move'
        ham.to_hdf()
        self.assertEqual('/job_single_move', ham.project_hdf5.h5_path)
        self.assertEqual(cwd + '/test_genericjob/job_single_move.h5',
                         ham.project_hdf5.file_name)
        self.assertTrue(os.path.isfile(ham.project_hdf5.file_name))
        ham.project_hdf5.remove_file()
        self.assertFalse(os.path.isfile(ham.project_hdf5.file_name))
        ham = self.project.create_job('ScriptJob', "job_single_debug_2")
        ham.to_hdf()
        self.assertEqual('job_single_debug_2', ham.job_name)
        self.assertEqual('/job_single_debug_2', ham.project_hdf5.h5_path)
        self.assertEqual(cwd + '/test_genericjob/job_single_debug_2.h5',
                         ham.project_hdf5.file_name)
        self.assertTrue(os.path.isfile(ham.project_hdf5.file_name))
        ham.job_name = 'job_single_move_2'
        self.assertEqual('/job_single_move_2', ham.project_hdf5.h5_path)
        self.assertEqual(cwd + '/test_genericjob/job_single_move_2.h5',
                         ham.project_hdf5.file_name)
        self.assertTrue(os.path.isfile(ham.project_hdf5.file_name))
        ham.project_hdf5.remove_file()
        self.assertFalse(
            os.path.isfile(cwd + '/test_genericjob/job_single_debug_2.h5'))
        self.assertFalse(os.path.isfile(ham.project_hdf5.file_name))

    def test_move(self):
        pr_a = self.project.open('project_a')
        pr_b = self.project.open('project_b')
        ham = pr_a.create_job('ScriptJob', "job_moving_easy")
        self.assertFalse(ham.project_hdf5.file_exists)
        self.assertEqual('test_genericjob/project_a/',
                         ham.project_hdf5.project_path)
        self.assertFalse(ham.project_hdf5.file_exists)
        ham.move_to(pr_b)
        self.assertEqual('test_genericjob/project_b/',
                         ham.project_hdf5.project_path)
        ham_2 = pr_a.create_job('ScriptJob', "job_moving_diff")
        ham_2.to_hdf()
        self.assertEqual('test_genericjob/project_a/',
                         ham_2.project_hdf5.project_path)
        ham_2.move_to(pr_b)
        self.assertEqual('test_genericjob/project_b/',
                         ham_2.project_hdf5.project_path)
        ham_2.project_hdf5.remove_file()
        pr_a.remove()
        pr_b.remove()

    # def test_sub_job_name(self):
    #     pass

    def test_version(self):
        pass

    def test_structure(self):
        pass

    def test_executable(self):
        pass

    def test_project(self):
        pass

    def test_hdf5(self):
        pass

    def test_server(self):
        pass

    def test_status(self):
        pass

    def test_job_info_str(self):
        pass

    def test_write_input(self):
        pass

    def test_collect_output(self):
        pass

    def test_collect_logfiles(self):
        pass

    def test_run(self):
        pass

    def test_run_if_modal(self):
        pass

    def test_run_if_non_modal(self):
        pass

    def test_run_if_manually(self):
        pass

    def test_run_if_queue(self):
        pass

    def test_run_if_new(self):
        pass

    def test_run_if_appended(self):
        pass

    def test_run_if_created(self):
        pass

    def test_run_if_submitted(self):
        pass

    def test_run_if_running(self):
        pass

    def test_run_if_refresh(self):
        pass

    def test_run_if_collect(self):
        pass

    def test_run_if_suspended(self):
        pass

    def test_run_if_finished(self):
        pass

    def test_suspend(self):
        pass

    def test_remove(self):
        pass

    def test_inspect(self):
        pass

    def test_load(self):
        pass

    def test_save(self):
        pass

    def test_job_file_name(self):
        pass

    def test_clear_job(self):
        pass

    def test_rename(self):
        pass

    def test_rename_nested_job(self):
        pass

    def test_copy(self):
        pass

    def test_update_master(self):
        pass

    def test_to_from_hdf(self):
        pass

    def test_to_from_hdf_serial(self):
        pass

    def test_to_from_hdf_childshdf(self):
        pass

    def test_show_hdf(self):
        pass

    def test_get_pandas(self):
        pass

    def test_get_from_table(self):
        pass

    def test_get(self):
        pass

    def test_append(self):
        pass

    def test_pop(self):
        pass

    def test_iter_childs(self):
        pass

    def test__check_if_job_exists(self):
        pass

    def test__runtime(self):
        pass

    def test__create_working_directory(self):
        pass

    def test__write_run_wrapper(self):
        pass

    def test__type_to_hdf(self):
        pass

    def test__type_from_hdf(self):
        pass

    def test_childs_to_hdf(self):
        pass

    def test_childs_from_hdf(self):
        pass

    def test_open_hdf(self):
        pass

    def test__check_ham_state(self):
        pass
예제 #11
0
 def tearDownClass(cls):
     project = Project('testing_childids')
     project.remove_jobs(recursive=True)
     project.remove()
     s.close_connection()
     os.remove('testing_childids.db')
예제 #12
0
 def setUpClass(cls):
     cls.project = Project('testing_childids')
예제 #13
0
 def setUp(self):
     self.current_dir = os.getcwd()
     print(s.top_path_dict)
     self.project = Project('sub_folder')