Ejemplo n.º 1
0
def test_buildprocvars(tmpdir, caplog):
    p11 = Proc()
    p11.args = {'a': 1}
    p11._buildProcVars()
    assert 'p11: a      => 1' in caplog.text
    assert 'p11: runner => local' in caplog.text
    assert 'p11: size   => 0' in caplog.text
    assert 'exdir' not in caplog.text
    assert p11.procvars['args'] is p11.args

    p11.config.args = {'a': 1}
    p11.exdir = 'abc'
    caplog.clear()
    p11._buildProcVars()
    assert 'p11: exdir  => abc' in caplog.text
    assert p11.procvars['args'] == p11.args
    assert p11.procvars['args'] is not p11.args
Ejemplo n.º 2
0
def test_buildprops(tmpdir):
    from pyppl import ProcTree
    p9 = Proc()
    p91 = Proc(id='p9')
    ProcTree.register(p9)
    ProcTree.register(p91)
    with pytest.raises(ProcTreeProcExists):
        p91._buildProps()

    p9.id = 'p89'
    p9.template = TemplateLiquid
    p9.ppldir = Path(tmpdir / 'test_buildprops')
    p9.rc = '0,1'
    p9.workdir = tmpdir / 'p8'
    p9.exdir = tmpdir / 'p8.exdir'
    p9.echo = True
    p9.expect = 'ls'
    p9.expart = 'outfile'
    p9._buildProps()
    assert p9.template is TemplateLiquid
    assert p9.rc == [0, 1]
    assert p9.workdir.exists()
    assert fs.exists(p9.exdir)
    assert p9.echo == dict(jobs=[0], type=dict(stderr=None, stdout=None))
    assert p9.expect.render() == 'ls'
    assert len(p9.expart) == 1
    assert p9.expart[0].render() == 'outfile'

    p9.template = None
    p9.rc = 1
    p9.sets.remove('workdir')
    p9.props.workdir = None
    p9.echo = False
    p9._buildProps()
    assert p9.template is TemplateLiquid
    assert p9.rc == [1]
    assert Path(
        p9.workdir) == Path(p9.ppldir) / ('PyPPL.p89.notag.%s' % p9.suffix)
    assert p9.echo == dict(jobs=[], type=dict(stderr=None, stdout=None))

    p9.template = 'liquid'
    p9.rc = [0, 1, 2]
    p9.echo = 'stderr'
    p9._buildProps()
    assert p9.template is TemplateLiquid
    assert p9.rc == [0, 1, 2]
    assert p9.echo == dict(jobs=[0], type=dict(stderr=None))

    fs.remove(p9.workdir)
    p9.resume = 'resume'
    with pytest.raises(ProcAttributeError):
        p9._buildProps()

    p9.echo = dict(type='stderr')
    p9.resume = ''
    p9._buildProps()
    assert p9.echo == dict(jobs=[0], type=dict(stderr=None))

    p9.echo = dict(jobs='0,1')
    p9._buildProps()
    assert p9.echo == dict(jobs=[0, 1], type=dict(stderr=None, stdout=None))

    p9.echo = dict(jobs='0,1', type=dict(all=r'^log'))
    p9._buildProps()
    assert p9.echo == dict(jobs=[0, 1],
                           type=dict(stderr=r'^log', stdout=r'^log'))