コード例 #1
0
ファイル: test_chmrunner.py プロジェクト: CRBS/chmutil
    def test_run_single_chm_job_no_image_singularity_abort(self):
        temp_dir = tempfile.mkdtemp()
        try:
            scratch = os.path.join(temp_dir, 'tmp')
            os.makedirs(scratch, mode=0o755)

            chmrundir = os.path.join(temp_dir,
                                     CHMJobCreator.RUN_DIR)
            os.makedirs(chmrundir, mode=0o755)
            con = configparser.ConfigParser()
            con.set('', CHMJobCreator.CONFIG_DISABLE_HISTEQ_IMAGES,
                    'True')
            con.set('', CHMJobCreator.CONFIG_MODEL, '/model')
            con.set('', CHMJobCreator.CONFIG_IMAGES, temp_dir)
            con.set('', CHMJobCreator.CONFIG_TILE_SIZE, '3x3')
            con.set('', CHMJobCreator.CONFIG_OVERLAP_SIZE, '2x2')

            con.add_section('1')
            con.set('1', CHMJobCreator.CONFIG_INPUT_IMAGE, 'input.1.png')
            con.set('1', CHMJobCreator.CONFIG_OUTPUT_IMAGE, 'output.1.png')

            con.set('1', CHMJobCreator.CONFIG_ARGS, '-t 1,1 -t 1,2')

            fakecmd = os.path.join(temp_dir, 'fake.py')
            write_fake_cmd(fakecmd, '"stdout"',
                           '"ABORT: Could not create temporary '
                           'directory /tmp"',
                           0, write_image=False)
            con.set('', CHMJobCreator.CONFIG_CHM_BIN,
                    fakecmd)
            try:
                chmrunner._run_single_chm_job(temp_dir,
                                              scratch, '1', con)
                self.fail('Expected SingularityAbortError')
            except SingularityAbortError as e:
                self.assertEqual(str(e),
                                 'ABORT: Could not create temporary directory '
                                 '/tmp')

            o_image = os.path.join(chmrundir, 'output.1.png')
            self.assertFalse(os.path.isfile(o_image))
            self.assertEqual(len(os.listdir(scratch)), 0)
        finally:
            shutil.rmtree(temp_dir)
コード例 #2
0
ファイル: test_chmrunner.py プロジェクト: CRBS/chmutil
    def test_run_single_chm_job_success_full_path_to_out_image(self):
        temp_dir = tempfile.mkdtemp()
        try:
            scratch = os.path.join(temp_dir, 'tmp')
            os.makedirs(scratch, mode=0o755)

            chmrundir = os.path.join(temp_dir,
                                     CHMJobCreator.RUN_DIR)
            os.makedirs(chmrundir, mode=0o755)
            con = configparser.ConfigParser()
            con.set('', CHMJobCreator.CONFIG_DISABLE_HISTEQ_IMAGES,
                    'False')
            con.set('', CHMJobCreator.CONFIG_MODEL, '/model')
            con.set('', CHMJobCreator.CONFIG_IMAGES, temp_dir)
            con.set('', CHMJobCreator.CONFIG_TILE_SIZE, '3x3')
            con.set('', CHMJobCreator.CONFIG_OVERLAP_SIZE, '2x2')

            con.add_section('1')
            con.set('1', CHMJobCreator.CONFIG_INPUT_IMAGE, 'input.1.png')
            o_image = os.path.join(temp_dir, 'output.1.png')
            con.set('1', CHMJobCreator.CONFIG_OUTPUT_IMAGE, o_image)

            con.set('1', CHMJobCreator.CONFIG_ARGS, '-t 1,1 -t 1,2')

            fakecmd = os.path.join(temp_dir, 'fake.py')
            write_fake_cmd(fakecmd, '"stdout"', '"stderr"', 0)
            con.set('', CHMJobCreator.CONFIG_CHM_BIN,
                    fakecmd)
            ecode = chmrunner._run_single_chm_job(temp_dir,
                                                  scratch, '1', con)

            self.assertTrue(os.path.isfile(o_image))
            self.assertEqual(ecode, 0)
            f = open(os.path.join(temp_dir, 'out.txt'), 'r')
            out_data = f.read()
            self.assertTrue('-m /model -b 3x3 -o 2x2 -t '
                            '1,1 -t 1,2' in out_data)
            self.assertTrue(fakecmd + ' test ' +
                            os.path.join(temp_dir, 'input.1.png') +
                            ' ' in out_data)

            self.assertEqual(len(os.listdir(scratch)), 0)
        finally:
            shutil.rmtree(temp_dir)