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"
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 )
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)
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
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)
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)
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 )
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
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"
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
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"
def test_shutdown_no_jobs(self): self.app.config.monitor_thread_join_timeout = 5 runner = local.LocalJobRunner(self.app, 1) runner.shutdown()