コード例 #1
0
def test_serialization():
    ax = DummyA(1, 10)
    bx = DummyB('2', 2)

    fun_serializer = FunctionSerializer()

    a = InMemoryDataSource(DummyA)
    b = InMemoryDataSource(DummyB)
    raw = RawDataSource()

    e = 'smache:functions:' \
        '"tests.integration.test_function_serialization/score"' \
        '~~~1~~~"2"~~~500' \
        '***(dp0\nS\'resolved\'\np1\nI01\ns.'

    computed_fun = ComputedFunction(score, [a, b, raw])

    key = fun_serializer.serialized_fun(computed_fun, ax, bx, 500,
                                        resolved=True)
    assert key == e

    expected_deserialization = (
        "tests.integration.test_function_serialization/score",
        [1, '2', 500],
        {"resolved": True}
    )
    assert fun_serializer.deserialized_fun(key) == expected_deserialization
コード例 #2
0
def test_de_and_serialization_of_no_arg_fun():
    fun_serializer = FunctionSerializer()

    computed_fun = ComputedFunction(score, [])

    key = fun_serializer.serialized_fun(computed_fun)
    assert key == 'smache:functions:' \
                  '"tests.integration.test_function_serialization/score"'
    assert fun_serializer.deserialized_fun(key) == (
        "tests.integration.test_function_serialization/score",
        [],
        {}
    )
コード例 #3
0
def test_computed_key_is_build_from_serializer(monkeypatch, computed_fun):
    serializer = FunctionSerializer()
    computed_repo = ComputedFunctionRepository(serializer)

    computed_repo.add(computed_fun)

    serialized_fun = 'my_serialized_fun'
    monkeypatch.setattr(serializer, 'serialized_fun',
                        lambda a, b: serialized_fun)

    assert computed_repo.computed_key(fun_fun, []) == serialized_fun
コード例 #4
0
def computed_repo():
    serializer = FunctionSerializer()
    yield ComputedFunctionRepository(serializer)