示例#1
0
def test_run_creator():
    o1 = _to_creator(t3)
    assert 4 == o1(4).as_array()[0][0]

    o1._params = ParamDict([("a", 2)], deep=False)
    o1._execution_engine = None
    assert 2 == o1.create().as_array()[0][0]

    o1 = _to_creator(t5)
    assert 4 == o1("dummy", 4)[0][0]
    o1._params = ParamDict([("a", 2)], deep=False)
    o1._execution_engine = "dummy"
    assert 2 == o1.create().as_array()[0][0]
示例#2
0
def test_register():
    register_creator("x", T0)
    b = _to_creator("x")
    assert isinstance(b, Creator)

    register_creator("x", Creator, on_dup="ignore")

    raises(
        KeyError,
        lambda: register_creator("x", Creator, on_dup="raise"),
    )

    raises(
        ValueError,
        lambda: register_creator("x", Creator, on_dup="dummy"),
    )
示例#3
0
def test__to_creator_determinism():
    a = _to_creator(t1, None)
    b = _to_creator(t1, None)
    c = _to_creator("t1", None)
    d = _to_creator("t2", None)
    assert a is not b
    assert to_uuid(a) == to_uuid(b)
    assert a is not c
    assert to_uuid(a) == to_uuid(c)
    assert to_uuid(a) != to_uuid(d)

    a = _to_creator(T0)
    b = _to_creator("T0")
    assert a is not b
    assert to_uuid(a) == to_uuid(b)
示例#4
0
def test__to_creator():
    a = _to_creator(T0)
    assert isinstance(a, Creator)
    a = _to_creator(T0())

    assert isinstance(a, Creator)
    a = _to_creator(t1)
    assert isinstance(a, Creator)
    a._x = 1
    b = _to_creator(t1)
    assert isinstance(b, Creator)
    assert "_x" not in b.__dict__
    c = _to_creator(t1)
    assert isinstance(c, Creator)
    assert "_x" not in c.__dict__
    c._x = 1
    d = _to_creator("t1")
    assert isinstance(d, Creator)
    assert "_x" not in d.__dict__
    raises(FugueInterfacelessError, lambda: _to_creator("abc"))

    assert isinstance(_to_creator(t3), Creator)
    assert isinstance(_to_creator(t4), Creator)
    assert isinstance(_to_creator(t5), Creator)
    assert isinstance(_to_creator(t6), Creator)
    raises(FugueInterfacelessError, lambda: _to_creator(t6, "a:int"))
    assert isinstance(_to_creator(t7, "a:int"), Creator)
    raises(FugueInterfacelessError, lambda: _to_creator(t7))
    assert isinstance(_to_creator(t8), Creator)
    assert isinstance(_to_creator(t9), Creator)
    assert isinstance(_to_creator(t10), Creator)