Example #1
0
    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'))
Example #2
0
    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'))