Beispiel #1
0
    def test_model_data_src_is_supplied___symlink_to_output_dir_static_is_created(self):
        with TemporaryDirectory() as run_dir, TemporaryDirectory() as oasis_src_fp, TemporaryDirectory() as model_data_fp, NamedTemporaryFile() as analysis_settings_fp:
            Path(os.path.join(model_data_fp, 'linked_file')).touch()

            prepare_run_directory(run_dir, oasis_src_fp, model_data_fp, analysis_settings_fp.name)

            self.assertTrue(os.path.exists(os.path.join(run_dir, 'static', 'linked_file')))
    def test_inputs_archive_with_subfolder_is_supplied_no_ri___archive_is_extracted_into_inputs(
            self):
        with TemporaryDirectory() as run_dir, TemporaryDirectory(
        ) as oasis_src_fp, TemporaryDirectory() as model_data_fp:
            analysis_settings_fp = os.path.join(oasis_src_fp, "settings.json")
            Path(analysis_settings_fp).touch()
            tar_path = os.path.join(oasis_src_fp, 'archive.tar')

            with tarfile.open(tar_path, 'w') as tar:
                archived_file_path = Path(oasis_src_fp, 'archived_file')
                archived_file_path.touch()
                tar.add(str(archived_file_path), arcname='archived_file')
                os.remove(str(archived_file_path))
                os.mkdir(os.path.join(oasis_src_fp, "sub1"))
                archived_file_path = Path(oasis_src_fp, "sub1",
                                          'archived_file')
                archived_file_path.touch()
                tar.add(str(archived_file_path),
                        arcname='sub1{}archived_file'.format(os.sep))
                shutil.rmtree(os.path.join(oasis_src_fp, "sub1"))

            prepare_run_directory(run_dir,
                                  oasis_src_fp,
                                  model_data_fp,
                                  analysis_settings_fp,
                                  inputs_archive=tar_path)

            self.assertTrue(Path(run_dir, 'input', 'archived_file').exists())
            self.assertTrue(
                Path(run_dir, 'input', 'sub1', 'archived_file').exists())
Beispiel #3
0
    def test_input_directory_is_supplied___input_files_are_copied_to_input_csv(self):
        with TemporaryDirectory() as run_dir, TemporaryDirectory() as oasis_src_fp, TemporaryDirectory() as model_data_fp, NamedTemporaryFile() as analysis_settings_fp:
            Path(os.path.join(oasis_src_fp, 'a_file.csv')).touch()

            prepare_run_directory(run_dir, oasis_src_fp, model_data_fp, analysis_settings_fp.name)

            self.assertTrue(os.path.exists(os.path.join(run_dir, 'input', 'csv', 'a_file.csv')))
Beispiel #4
0
    def test_model_data_src_is_supplied_sym_link_raises___input_is_copied_from_static(self):
        with TemporaryDirectory() as run_dir, TemporaryDirectory() as oasis_src_fp, TemporaryDirectory() as model_data_fp, NamedTemporaryFile() as analysis_settings_fp:
            #import ipdb; ipdb.set_trace()
            Path(os.path.join(model_data_fp, 'linked_file')).touch()

            with patch('os.symlink', Mock(side_effect=OSError())):
                prepare_run_directory(run_dir, oasis_src_fp, model_data_fp, analysis_settings_fp.name)

            self.assertTrue(os.path.exists(os.path.join(run_dir, 'static', 'linked_file')))
Beispiel #5
0
    def test_analysis_settings_file_is_supplied___file_is_copied_into_run_dir(self):
        with TemporaryDirectory() as run_dir, TemporaryDirectory() as oasis_src_fp, TemporaryDirectory() as model_data_fp, NamedTemporaryFile('w') as analysis_settings_fp:
            analysis_settings_fp.write('{"analysis_settings": "analysis_settings"}')
            analysis_settings_fp.flush()

            prepare_run_directory(run_dir, oasis_src_fp, model_data_fp, analysis_settings_fp.name)

            with io_open(os.path.join(run_dir, 'analysis_settings.json'), encoding='utf-8') as expected_analysis_settings:
                self.assertEqual('{"analysis_settings": "analysis_settings"}', expected_analysis_settings.read())
Beispiel #6
0
    def test_directory_is_empty___child_directories_are_created(self):
        with TemporaryDirectory() as run_dir, TemporaryDirectory() as oasis_src_fp, TemporaryDirectory() as model_data_fp, NamedTemporaryFile() as analysis_settings_fp:
            prepare_run_directory(run_dir, oasis_src_fp, model_data_fp, analysis_settings_fp.name)

            #self.assertTrue(os.path.exists(os.path.join(d, 'fifo')))
            self.assertTrue(os.path.exists(os.path.join(run_dir, 'input')))
            self.assertTrue(os.path.exists(os.path.join(run_dir, 'input', 'csv')))
            self.assertTrue(os.path.exists(os.path.join(run_dir, 'output')))
            self.assertTrue(os.path.exists(os.path.join(run_dir, 'static')))
            self.assertTrue(os.path.exists(os.path.join(run_dir, 'work')))
Beispiel #7
0
    def test_directory_is_empty___child_directories_are_created(self):
        with TemporaryDirectory() as run_dir, TemporaryDirectory() as oasis_src_fp, TemporaryDirectory() as model_data_fp:
            analysis_settings_fp = os.path.join(oasis_src_fp, "settings.json")
            Path(analysis_settings_fp).touch()
            prepare_run_directory(run_dir, oasis_src_fp, model_data_fp, analysis_settings_fp)

            self.assertTrue(os.path.exists(os.path.join(run_dir, 'input')))
            self.assertTrue(os.path.exists(os.path.join(run_dir, 'output')))
            self.assertTrue(os.path.exists(os.path.join(run_dir, 'static')))
            self.assertTrue(os.path.exists(os.path.join(run_dir, 'work')))
    def test_model_data_src_is_supplied_sym_link_raises_exception(self):
        with TemporaryDirectory() as run_dir, TemporaryDirectory(
        ) as oasis_src_fp, TemporaryDirectory() as model_data_fp:
            analysis_settings_fp = os.path.join(oasis_src_fp, "settings.json")
            Path(analysis_settings_fp).touch()
            Path(os.path.join(model_data_fp, 'linked_file')).touch()

            with self.assertRaises(OasisException):
                with patch('os.symlink', Mock(side_effect=OSError())):
                    prepare_run_directory(run_dir, oasis_src_fp, model_data_fp,
                                          analysis_settings_fp)
Beispiel #9
0
    def test_inputs_archive_is_supplied_with_ri___archive_is_extracted_into_run_dir(self):
        with TemporaryDirectory() as run_dir, TemporaryDirectory() as oasis_src_fp, TemporaryDirectory() as model_data_fp, NamedTemporaryFile() as analysis_settings_fp:
            tar_path = os.path.join(oasis_src_fp, 'archive.tar')

            with tarfile.open(tar_path, 'w', encoding='utf-8') as tar:
                archived_file_path = Path(oasis_src_fp, 'archived_file')
                archived_file_path.touch()
                tar.add(str(archived_file_path), arcname='archived_file')

            prepare_run_directory(run_dir, oasis_src_fp, model_data_fp, analysis_settings_fp.name, inputs_archive=tar_path, ri=True)

            self.assertTrue(Path(run_dir, 'archived_file').exists())