def testStepJobIdSummaryNoJobs(self, subprocessMock): """ The stepJobIds method should return an empty set if a step emitted no jobs. """ status = { 'force': False, 'lastStep': None, 'scheduledAt': 1481379658.5455897, 'scriptArgs': [], 'skip': [], 'startAfter': None, 'steps': [ { 'name': 'start', 'scheduledAt': 1481379659.1530972, 'script': 'start.sh', 'stdout': '', 'taskDependencies': {}, 'tasks': {}, }, ], } subprocessMock.return_value = ( 'JobID|JobName|State|Elapsed|Nodelist\n') sps = SlurmPipelineStatus(status) self.assertEqual(set(), sps.stepJobIds('start'))
def testStepJobIdSummaryTwoJobsBothFinished(self, subprocessMock): """ The stepJobIds method should return the expected set if a step emitted two jobs, both of which are finished. """ status = { 'force': False, 'lastStep': None, 'scheduledAt': 1481379658.5455897, 'scriptArgs': [], 'skip': [], 'startAfter': None, 'steps': [ { 'name': 'start', 'scheduledAt': 1481379659.1530972, 'script': 'start.sh', 'stdout': '', 'taskDependencies': {}, 'tasks': { 'fun': [34, 35], }, }, ], } subprocessMock.return_value = ('JobID|JobName|State|Elapsed|Nodelist\n' '34|name|COMPLETED|04:32:00|cpu-3\n' '35|name|COMPLETED|04:32:00|cpu-4\n') sps = SlurmPipelineStatus(status) self.assertEqual({34, 35}, sps.stepJobIds('start'))