Beispiel #1
0
    def test2_lsf_job(self, subprocess_patch):
        laimsapp = LaimsApp()
        config = laimsapp.lsf_job_options()
        config.pop("queue", None)
        config.pop("stdout", None)
        print(config)
        job = LsfJob(config)
        self.assertTrue(isinstance(job, LsfJob))

        available_opts = LsfJob.available_options
        self.assertEqual(len(available_opts), 9,
                         "available options count is 9")

        expected_cmd = [
            'bsub', '-a', 'docker(registry.gsc.wustl.edu/mgi/laims:latest)',
            '-N', '-u', '*****@*****.**', 'echo', 'hello', 'world'
        ]
        self.assertEqual(job.bsub_cmd(['echo', 'hello', 'world']),
                         expected_cmd)

        job.created_options["stdout"] = "/var/log/out"
        expected_cmd = [
            'bsub', '-M', '10000000', '-R',
            '"select[mem>10000] rusage[mem=10000]"', '-a',
            'docker(hello-world)', "-oo", "/var/log/out", '-N', '-u',
            '*****@*****.**', 'echo', 'hello', 'world'
        ]
        self.assertEqual(
            job.bsub_cmd(['echo', 'hello', 'world'], {
                "docker": "hello-world",
                "memory_in_gb": 10
            }), expected_cmd)

        job.created_options["stdout"] = "/var/log"
        expected_cmd = [
            'bsub', '-M', '10000000', '-R',
            '"select[mem>10000] rusage[mem=10000]"', '-a',
            'docker(hello-world)', "-oo", "/var/log/log1.out", '-N', '-u',
            '*****@*****.**', 'echo', 'hello', 'world'
        ]
        self.assertEqual(
            job.bsub_cmd(
                ['echo', 'hello', 'world'], {
                    "docker": "hello-world",
                    "memory_in_gb": 10,
                    "stdout_bn": "log1.out"
                }), expected_cmd)

        subprocess_patch.return_value = 1
        self.assertFalse(
            job.launch(['echo', 'hello', 'world'], {"docker": "hello-world"}),
            expected_cmd)
Beispiel #2
0
 def test4_job_options(self):
     laimsapp = LaimsApp(config_file=self.config_fn)
     laimsapp.queue = "ccdg"
     laimsapp.stdout = "/var/log/out"
     self.assertTrue(laimsapp)
     opts = laimsapp.lsf_job_options()
     expected_opts = {
         "email": "*****@*****.**",
         "queue": "ccdg",
         "docker": "registry.gsc.wustl.edu/mgi/laims:latest",
         "stdout": "/var/log/out",
     }
     self.assertDictEqual(opts, expected_opts,
                          "LSF job options fetched from config")