Ejemplo n.º 1
0
def pipeline():
    return compose(
        "pipeline",
        operation(name="add", needs=["a", "b1"], provides=["ab1"])(add),
        operation(name="sub", needs=["a", optional("b2")],
                  provides=["ab2"])(lambda a, b=1: a - b),
        operation(name="abb", needs=["ab1", "ab2"], provides=["asked"])(add),
    )
Ejemplo n.º 2
0
def test_implicit(ser_method):
    assert is_implicit("a") is None
    m = implicit("a")
    assert is_implicit(m) is True
    m = optional("a", implicit=1)
    assert is_implicit(m) is 1

    assert dep_renamed(m, "R")._implicit == m._implicit
    assert ser_method(m)._implicit == m._implicit
Ejemplo n.º 3
0
def test_recreation_repr():
    assert repr(optional(optional("a"))) == repr(optional("a"))
    assert repr(keyword(keyword("a", 1), 1)) == repr(keyword("a", 1))
    assert repr(vararg(vararg("a"))) == repr(vararg("a"))
    assert repr(varargs(varargs("a"))) == repr(varargs("a"))
Ejemplo n.º 4
0
def test_recreation():
    assert optional(optional("a")) == optional("a")
    assert keyword(keyword("a", 1), 1) == keyword("a", 1)
    assert vararg(vararg("a")) == vararg("a")
    assert varargs(varargs("a")) == varargs("a")
Ejemplo n.º 5
0
def test_serialize_modifier(ser_method):
    s = sfxed("foo", "gg")
    assert repr(ser_method(s)) == repr(s)
    assert modifier_kws(ser_method(s)) == modifier_kws(s)


## construct in lambdas, not to crash pytest while modifying core _Modifier
@pytest.mark.parametrize(
    "mod, exp",
    [
        (lambda: modify("b", accessor=acc), "b"),
        (lambda: keyword("b", None), "b"),
        (lambda: keyword("b", ""), "b"),
        (lambda: keyword("b", "bb"), "b"),
        (lambda: optional("b"), "b"),
        (lambda: optional("b", "bb"), "b"),
        (lambda: vararg("c"), "c"),
        (lambda: varargs("d"), "d"),
        (lambda: modify("/d"), "/d"),
        (lambda: modify("/d/"), "/d/"),
        (lambda: modify("/d", jsonp=False), "/d"),
        (lambda: modify("/d/", jsonp=False), "/d/"),
        (lambda: sfx("e"), "sfx('e')"),
        (lambda: sfx("e", optional=1), "sfx('e')"),
        (lambda: sfxed("f", "a", "b"), "sfxed('f', 'a', 'b')"),
        (lambda: sfxed("f", "ff", keyword="F"), "sfxed('f', 'ff')"),
        (lambda: sfxed("f", "ff", optional=1, keyword="F"), "sfxed('f', 'ff')"),
        (lambda: sfxed("f", "ff", optional=1), "sfxed('f', 'ff')"),
        ## Accessor
        #