def test_missing_skipped(self): self.factory.options = [ CommandOption('foo', '-f=${value}', None), CommandOption('bar', '-b=${value}', None) ] values = {'bar': 'v1'} runner = self.DummyRunner( self.factory, self.configuration, values, '/home' ) self.assertListEqual(runner.args, ['-b=v1'])
def test_plain_args(self): self.factory.options = [ CommandOption('foo', '-f=${value}', None), CommandOption('bar', '--bar=${value}', None), CommandOption('qux', '-q=${value}', '10') ] values = {'foo': 'v1', 'bar': 'v2', 'qux': 'v3'} runner = self.DummyRunner( self.factory, self.configuration, values, '/home' ) result = ['-f=v1', '--bar=v2', '-q=v3'] self.assertListEqual(runner.args, result)
def test_value_with_space(self): self.factory.options = [CommandOption('foo', '-f=${value}', None)] values = {'foo': 'v1 v1'} runner = self.DummyRunner( self.factory, self.configuration, values, '/home' ) self.assertListEqual(runner.args, ['-f=v1 v1'])
def test_default_override_null(self): self.factory.options = [ CommandOption('foo', '-f=${value}', 'v') ] runner = self.DummyRunner( self.factory, self.configuration, {'foo': None}, '/home' ) self.assertListEqual(runner.args, ['-f=v'])
def test_file_outside_cwd(self): self.factory.options = [ CommandOption('foo', '-f=${file:../input.txt}', None) ] values = {'foo': '/home/slivka/input.in'} with self.assertRaises(ValueError): self.DummyRunner( self.factory, self.configuration, values, '/home' )
def test_file_in_folder(self): self.factory.options = [ CommandOption('foo', '-f=${file:result/input.txt}', None) ] values = {'foo': '/home/slivka/input.in'} runner = self.DummyRunner( self.factory, self.configuration, values, '/home' ) self.assertListEqual(runner.args, ['-f=result/input.txt'])
def test_link(self, mock_isdir, mock_link): self.factory.options = [ CommandOption('foo', '-f=${file:input.txt}', None) ] values = {'foo': '/home/slivka/inputs/file.in'} runner = self.DummyRunner( self.factory, self.configuration, values, '/home/workDir' ) mock_isdir.return_value = True with mock.patch('slivka.scheduler.execution_manager.os.mkdir'): runner.prepare() mock_link.assert_called_once_with( os.path.normpath('/home/slivka/inputs/file.in'), os.path.normpath(os.path.join('/home/workDir', 'input.txt')) )