Beispiel #1
0
 def test_slots_override( self ):
     # Set local_slots in job destination to specify slots for
     # local job runner.
     self.job_wrapper.job_destination.params[ "local_slots" ] = 3
     self.job_wrapper.command_line = '''echo $GALAXY_SLOTS'''
     runner = local.LocalJobRunner( self.app, 1 )
     runner.queue_job( self.job_wrapper )
     assert self.job_wrapper.stdout.strip() == "3"
Beispiel #2
0
    def test_metadata_gets_set_if_embedded( self ):
        self.job_wrapper.job_destination.params[ "embed_metadata_in_job" ] = "True"

        # Kill off cruft for _handle_metadata_externally and make sure job stil works...
        self.job_wrapper.external_output_metadata = None
        self.app.datatypes_registry.set_external_metadata_tool = None

        runner = local.LocalJobRunner( self.app, 1 )
        runner.queue_job( self.job_wrapper )
        assert os.path.exists( self.job_wrapper.mock_metadata_path )
Beispiel #3
0
    def test_stopping_job(self):
        self.job_wrapper.command_line = '''python -c "import time; time.sleep(15)"'''
        runner = local.LocalJobRunner(self.app, 1)

        def queue():
            runner.queue_job(self.job_wrapper)

        t = threading.Thread(target=queue)
        t.start()
        external_id = self.job_wrapper.wait_for_external_id()
        assert psutil.pid_exists(external_id)
        runner.stop_job(self.job_wrapper)
        t.join(1)
        assert not psutil.pid_exists(external_id)
Beispiel #4
0
    def test_stopping_job_at_shutdown(self):
        self.job_wrapper.command_line = '''python -c "import time; time.sleep(15)"'''
        runner = local.LocalJobRunner(self.app, 1)
        self.app.config.monitor_thread_join_timeout = 15

        def queue():
            runner.queue_job(self.job_wrapper)

        t = threading.Thread(target=queue)
        t.start()
        external_id = self.job_wrapper.wait_for_external_id()
        assert psutil.pid_exists(external_id)
        runner.shutdown()
        t.join(1)
        assert not psutil.pid_exists(external_id)
        assert "job terminated by Galaxy shutdown" in self.job_wrapper.fail_message
Beispiel #5
0
    def test_stopping_job(self):
        self.job_wrapper.command_line = '''python -c "import time; time.sleep(15)"'''
        runner = local.LocalJobRunner(self.app, 1)

        def queue():
            runner.queue_job(self.job_wrapper)

        t = threading.Thread(target=queue)
        t.start()
        external_id = self.job_wrapper.wait_for_external_id()
        mock_job = bunch.Bunch(
            get_external_output_metadata=lambda: None,
            get_job_runner_external_id=lambda: str(external_id),
            get_id=lambda: 1)
        assert psutil.pid_exists(external_id)
        runner.stop_job(mock_job)
        t.join(1)
        assert not psutil.pid_exists(external_id)
Beispiel #6
0
    def test_stopping_job(self):
        self.job_wrapper.command_line = '''python -c "import time; time.sleep(15)"'''
        runner = local.LocalJobRunner(self.app, 1)

        def queue():
            runner.queue_job(self.job_wrapper)

        t = threading.Thread(target=queue)
        t.start()
        while True:
            if self.job_wrapper.external_id:
                break
            time.sleep(.01)
        external_id = self.job_wrapper.external_id
        mock_job = bunch.Bunch(
            get_external_output_metadata=lambda: None,
            get_job_runner_external_id=lambda: str(external_id),
            get_id=lambda: 1)
        runner.stop_job(mock_job)
        t.join(1)
Beispiel #7
0
 def test_metadata_gets_set( self ):
     runner = local.LocalJobRunner( self.app, 1 )
     runner.queue_job( self.job_wrapper )
     assert os.path.exists( self.job_wrapper.mock_metadata_path )
Beispiel #8
0
 def test_exit_code( self ):
     self.job_wrapper.command_line = '''sh -c "exit 4"'''
     runner = local.LocalJobRunner( self.app, 1 )
     runner.queue_job( self.job_wrapper )
     assert self.job_wrapper.exit_code == 4
Beispiel #9
0
 def test_default_slots( self ):
     self.job_wrapper.command_line = '''echo $GALAXY_SLOTS'''
     runner = local.LocalJobRunner( self.app, 1 )
     runner.queue_job( self.job_wrapper )
     assert self.job_wrapper.stdout.strip() == "1"
Beispiel #10
0
 def test_galaxy_lib_on_path( self ):
     self.job_wrapper.command_line = '''python -c "import galaxy.util"'''
     runner = local.LocalJobRunner( self.app, 1 )
     runner.queue_job( self.job_wrapper )
     assert self.job_wrapper.exit_code == 0
Beispiel #11
0
 def test_run( self ):
     self.job_wrapper.command_line = "echo HelloWorld"
     runner = local.LocalJobRunner( self.app, 1 )
     runner.queue_job( self.job_wrapper )
     assert self.job_wrapper.stdout.strip() == "HelloWorld"
Beispiel #12
0
 def test_shutdown_no_jobs(self):
     self.app.config.monitor_thread_join_timeout = 5
     runner = local.LocalJobRunner(self.app, 1)
     runner.shutdown()