def test_buildinput(tmpdir, caplog): p10 = Proc() p10.input = 'a, b:file, ' p10.input = ('1', 'infile') p10._buildInput() assert len(p10.input) == 2 assert p10.input['a'] == ('var', ['1']) assert p10.input['b'] == ('file', ['infile']) assert p10.size == 1 p10.input = 'a:x:y' with pytest.raises(ProcInputError): p10._buildInput() p101 = Proc() p101.props.channel = Channel.create([(1, 3), (2, 4)]) p10.depends = p101 p10.input = 'a, b, c' p10.input = lambda ch: ch.cbind(1).cbind(2) caplog.clear() p10._buildInput() assert 'Not all data are used as input' in caplog.text assert len(p10.input) == 3 assert p10.size == 2 assert p10.input['a'] == ('var', [1, 2]) assert p10.input['b'] == ('var', [3, 4]) assert p10.input['c'] == ('var', [1, 1]) p10.input = 'a:files, b:files, c' p10.input = Channel.create([['infile1'], ['infile2']]) p10._buildInput() assert 'No data found for input key "b"' in caplog.text assert 'No data found for input key "c"' in caplog.text caplog.clear() assert len(p10.input) == 3 assert p10.size == 2 assert p10.input['a'] == ('files', [['infile1'], ['infile2']]) assert p10.input['b'] == ('files', [[], []]) assert p10.input['c'] == ('var', ['', '']) p10.props.template = TemplateLiquid p10.props.workdir = tmpdir / 'test_buildinput_p10' p10.resume = 'resume' fs.remove(Path(p10.workdir) / 'proc.settings.yaml') with pytest.raises(ProcInputError): p10._buildInput() fs.mkdir(p10.workdir) p10.props.input = OBox() p10.input['a'] = ('files', [['infile1'], ['infile2']]) p10.input['b'] = ('files', [[], []]) p10.input['c'] = ('var', ['', '']) p10._saveSettings() p10.props.input = None p10._buildInput() assert len(p10.input) == 3 assert p10.size == 2 assert p10.input['a'] == ('files', [['infile1'], ['infile2']]) assert p10.input['b'] == ('files', [[], []]) assert p10.input['c'] == ('var', ['', ''])
def test_savesettings(tmpdir, caplog): import yaml p14 = Proc() p14.props.template = TemplateLiquid p14.props.workdir = tmpdir / 'test_savesettings_p14' p14.props.workdir.mkdir() p14._saveSettings() assert 'Settings saved to: ' in caplog.text with (p14.props.workdir / 'proc.settings.yaml').open() as f: saved = yaml.load(f, Loader=yaml.Loader) assert saved['workdir'] == p14.props.workdir