Source code for toil.test.batchSystems.test_lsf_helper

"""lsfHelper.py shouldn't need a batch system and so the unit tests here should aim to run on any system."""
from toil.batchSystems.lsfHelper import parse_mem_and_cmd_from_output
from toil.test import ToilTest


[docs] class LSFHelperTest(ToilTest):
[docs] def test_parse_mem_and_cmd_from_output(self): # https://github.com/DataBiosphere/toil/pull/3475 output = ('\nJob <2924748>, Job Name <toil_job_64>, User <thiagogenez>, Project <default>, S' '\n tatus <RUN>, Queue <research-rh74>, Job Priority <50>, Com' '\n mand <_toil_worker CactusBarRecursion file:/hps/nobackup/p' '\n roduction/ensembl/thiagogenez/pairwises/arabidopsis/run/jo' '\n bstore/3 kind-CactusBarRecursion/instance-iu6wo56x --conte' '\n xt gAShortenedh32xqlE51Yi4=>, Share group charged </thiago' '\n genez>, Esub <esub>' '\nThu Mar 18 02:06:32: Submitted from host <noah-login-01>, CWD </hps/nobackup/pr' '\n oduction/ensembl/thiagogenez/pairwises/arabidopsis/run>, S' '\n pecified CWD </hps/nobackup/production/ensembl/thiagogenez' '\n /pairwises/arabidopsis/run/.>, Output File </tmp/toil_work' '\n flow_10e83102-2e4b-4093-9128-2a52f4bbc65a_job_64_batch_lsf' '\n _2924748_std_output.log>, Error File </tmp/toil_workflow_1' '\n 0e83102-2e4b-4093-9128-2a52f4bbc65a_job_64_batch_lsf_29247' '\n 48_std_error.log>, Requested Resources <select[(mem>4000)]' '\n rusage[mem=4000:duration=480, numcpus=1:duration=480]>;' '\nThu Mar 18 02:06:33: Started on <hx-noah-31-02>, Execution Home </homes/thiagog' '\n enez>, Execution CWD </hps/nobackup/production/ensembl/thi' '\n agogenez/pairwises/arabidopsis/run/.>;' '\nThu Mar 18 17:07:47: Resource usage collected.' '\n The CPU time used is 53936 seconds.' '\n MEM: 344 Mbytes; SWAP: 1.3 Gbytes; NTHREAD: 5' '\n PGID: 433168; PIDs: 433168 433177 433179 444026 ' '\n' '\n RUNLIMIT ' '\n 10085.0 min' '\n' '\n CORELIMIT MEMLIMIT' '\n 0 M 3.9 G ' '\n' '\n MEMORY USAGE:' '\n MAX MEM: 2.5 Gbytes; AVG MEM: 343 Mbytes' '\n' '\n SCHEDULING PARAMETERS:' '\n r15s r1m r15m ut pg io ls it tmp swp mem' '\n loadSched - - - - 10.0 - - - 500M - 1000M ' '\n loadStop - - - - - - - - - - - ' '\n' '\n availcpus ' '\n loadSched 1.0 ' '\n loadStop - ' '\n' '\n RESOURCE REQUIREMENT DETAILS:' '\n Combined: select[((mem>4000)) && (type == local)] order[r15s:pg] rusage[mem=40' '\n 00.00:duration=8h:decay=0,numcpus=1.00:duration=8h:decay=0' '\n ] span[hosts=1]' '\n Effective: select[(((mem>4000))) && (type == local)] order[r15s:pg] rusage[mem' '\n =4000.00:duration=8h:decay=0,numcpus=1.00:duration=8h:deca' '\n y=0] span[hosts=1] ' '\n' '\n') max_mem, command = parse_mem_and_cmd_from_output(output=output) assert len(max_mem.groups()) == 1 expected_mem = '2.5 Gbytes' assert max_mem.group(1) == expected_mem, f'Actual: {max_mem.group(1)}, Expected: "{expected_mem}"' assert len(command.groups()) == 1 expected_command = ('_toil_worker CactusBarRecursion file:/hps/nobackup/production/ensembl/thiagogenez/' 'pairwises/arabidopsis/run/jobstore/3 kind-CactusBarRecursion/instance-iu6wo56x ' '--context gAShortenedh32xqlE51Yi4=') assert command.group(1) == expected_command, f'Actual: {command.group(1)}, Expected: "{expected_command}"' print(command) max_mem, command = parse_mem_and_cmd_from_output(output='') assert max_mem == None assert command == None