Пример #1
0
def test_lua_full_lua_array(rk):
    k1 = next(rk)
    k2 = next(rk)
    k3 = next(rk)

    r1 = create_resource(k1, {'name': 'source1',
                              'inputs': {'input1': 10}})
    r3 = create_resource(k3, {'name': 'source1',
                              'inputs': {'input1': 11}})
    r2 = create_resource(k2, {'name': 'target1',
                              'inputs': {'input1': None}})

    # raw python object, counts from 0
    lua_funct = 'return D'
    r2.meta_inputs['input1']['computable'] = {'func': lua_funct,
                                              'type': CPT.full.name,
                                              'lang': 'lua'}
    r1.connect(r2, {'input1': 'input1'})
    r3.connect(r2, {'input1': 'input1'})

    r1.save()
    r2.save()
    r3.save()

    res_inputs = set(dth(r2.inputs['input1']))
    comparsion = set(dth([{'value': 11, 'resource': r3.name,
                           'other_input': 'input1'},
                          {'value': 10, 'resource': r1.name,
                           'other_input': 'input1'}]))
    assert res_inputs == comparsion
Пример #2
0
def test_lua_full_lua_array(rk):
    k1 = next(rk)
    k2 = next(rk)
    k3 = next(rk)

    r1 = create_resource(k1, {'name': 'source1',
                              'inputs': {'input1': 10}})
    r3 = create_resource(k3, {'name': 'source1',
                              'inputs': {'input1': 11}})
    r2 = create_resource(k2, {'name': 'target1',
                              'inputs': {'input1': None}})

    # raw python object, counts from 0
    lua_funct = 'return D'
    r2.meta_inputs['input1']['computable'] = {'func': lua_funct,
                                              'type': CPT.full.name,
                                              'lang': 'lua'}
    r1.connect(r2, {'input1': 'input1'})
    r3.connect(r2, {'input1': 'input1'})

    r1.save()
    r2.save()
    r3.save()

    res_inputs = set(dth(r2.inputs['input1']))
    comparsion = set(dth([{'value': 11, 'resource': r3.name,
                           'other_input': 'input1'},
                          {'value': 10, 'resource': r1.name,
                           'other_input': 'input1'}]))
    assert res_inputs == comparsion
Пример #3
0
def test_lua_connect_to_computed(rk):
    k1 = next(rk)
    k2 = next(rk)
    k3 = next(rk)
    k4 = next(rk)

    r1 = create_resource(k1, {'name': 'source1',
                              'inputs': {'input1': 10}})
    r3 = create_resource(k3, {'name': 'source1',
                              'inputs': {'input1': 11}})
    r2 = create_resource(k2, {'name': 'target1',
                              'inputs': {'input1': None}})
    r4 = create_resource(k4, {'name': 'target1',
                              'inputs': {'input1': None}})

    lua_funct = 'return math.max(unpack(D))'
    r2.meta_inputs['input1']['computable'] = {'func': lua_funct,
                                              'lang': 'lua'}
    r1.connect(r2, {'input1': 'input1'})
    r3.connect(r2, {'input1': 'input1'})

    r2.connect(r4, {'input1': 'input1'})

    r1.save()
    r2.save()
    r3.save()
    r4.save()

    assert r4.inputs['input1'] == 11
Пример #4
0
def test_lua_connect_to_computed(rk):
    k1 = next(rk)
    k2 = next(rk)
    k3 = next(rk)
    k4 = next(rk)

    r1 = create_resource(k1, {'name': 'source1',
                              'inputs': {'input1': 10}})
    r3 = create_resource(k3, {'name': 'source1',
                              'inputs': {'input1': 11}})
    r2 = create_resource(k2, {'name': 'target1',
                              'inputs': {'input1': None}})
    r4 = create_resource(k4, {'name': 'target1',
                              'inputs': {'input1': None}})

    lua_funct = 'return math.max(unpack(D))'
    r2.meta_inputs['input1']['computable'] = {'func': lua_funct,
                                              'lang': 'lua'}
    r1.connect(r2, {'input1': 'input1'})
    r3.connect(r2, {'input1': 'input1'})

    r2.connect(r4, {'input1': 'input1'})

    r1.save()
    r2.save()
    r3.save()
    r4.save()

    assert r4.inputs['input1'] == 11
Пример #5
0
def test_lua_join_different_values(rk):
    k1 = next(rk)
    k2 = next(rk)
    k3 = next(rk)
    k4 = next(rk)

    r1 = create_resource(k1, {'name': 'r1',
                              'inputs': {'input1': "blah"}})
    r2 = create_resource(k2, {'name': 'r2',
                              'inputs': {'input2': "blub"}})
    r3 = create_resource(k3, {'name': 'r3',
                              'inputs': {'input': None}})
    r4 = create_resource(k4, {'name': 'r4',
                              'inputs': {'input': None}})

    lua_funct = """
return R["r1"]["input1"] .. "@" .. R["r2"]["input2"]"""

    r3.meta_inputs['input']['computable'] = {"func": lua_funct,
                                             'lang': 'lua',
                                             'type': CPT.full.name}

    r1.connect(r3, {'input1': 'input'})
    r2.connect(r3, {'input2': 'input'})

    r1.save()
    r2.save()
    r3.save()

    assert r3.inputs['input'] == 'blah@blub'

    r3.connect(r4, {'input': 'input'})
    r4.save()

    assert r4.inputs['input'] == 'blah@blub'
Пример #6
0
def test_lua_join_different_values(rk):
    k1 = next(rk)
    k2 = next(rk)
    k3 = next(rk)
    k4 = next(rk)

    r1 = create_resource(k1, {'name': 'r1',
                              'inputs': {'input1': "blah"}})
    r2 = create_resource(k2, {'name': 'r2',
                              'inputs': {'input2': "blub"}})
    r3 = create_resource(k3, {'name': 'r3',
                              'inputs': {'input': None}})
    r4 = create_resource(k4, {'name': 'r4',
                              'inputs': {'input': None}})

    lua_funct = """
return R["r1"]["input1"] .. "@" .. R["r2"]["input2"]"""

    r3.meta_inputs['input']['computable'] = {"func": lua_funct,
                                             'lang': 'lua',
                                             'type': CPT.full.name}

    r1.connect(r3, {'input1': 'input'})
    r2.connect(r3, {'input2': 'input'})

    r1.save()
    r2.save()
    r3.save()

    assert r3.inputs['input'] == 'blah@blub'

    r3.connect(r4, {'input': 'input'})
    r4.save()

    assert r4.inputs['input'] == 'blah@blub'
Пример #7
0
def test_lua_simple_noop(rk):
    k1 = next(rk)
    k2 = next(rk)

    r1 = create_resource(k1, {'name': 'source1',
                              'inputs': {'input1': 10}})
    r2 = create_resource(k2, {'name': 'target1',
                              'inputs': {'input1': None}})

    r2.meta_inputs['input1']['computable'] = {'func': None,
                                              'lang': 'lua'}
    r1.connect(r2, {'input1': 'input1'})
    r1.save()
    r2.save()

    assert r2.inputs['input1'] == [10]
Пример #8
0
def test_jinja_change_func_computable_inputs(rk):
    k1 = next(rk)

    r1 = create_resource(k1, {'name': "r1",
                              'inputs': {'input1': 3,
                                         'input2': 2,
                                         'input3': None}})
    jinja_funct = """
{{D|sum}}
"""

    r1.meta_inputs['input3']['computable'] = {'func': jinja_funct,
                                              'lang': 'jinja2',
                                              'type': CPT.values.name}

    r1.connect(r1, {'input1': 'input3'})
    r1.connect(r1, {'input2': 'input3'})

    r1.save()

    assert r1.inputs['input3'] == '5'

    jinja_funct = """
{{D[0]}}
"""
    r1.meta_inputs['input3']['computable'] = {'func': jinja_funct,
                                              'lang': 'jinja2',
                                              'type': CPT.values.name}

    assert r1.inputs['input3'] == '3'
Пример #9
0
def test_lua_simple_noop(rk):
    k1 = next(rk)
    k2 = next(rk)

    r1 = create_resource(k1, {'name': 'source1',
                              'inputs': {'input1': 10}})
    r2 = create_resource(k2, {'name': 'target1',
                              'inputs': {'input1': None}})

    r2.meta_inputs['input1']['computable'] = {'func': None,
                                              'lang': 'lua'}
    r1.connect(r2, {'input1': 'input1'})
    r1.save()
    r2.save()

    assert r2.inputs['input1'] == [10]
Пример #10
0
def test_lua_full_noop(rk):
    k1 = next(rk)
    k2 = next(rk)

    r1 = create_resource(k1, {'name': 'source1',
                              'inputs': {'input1': 10}})
    r2 = create_resource(k2, {'name': 'target1',
                              'inputs': {'input1': None}})

    r2.meta_inputs['input1']['computable'] = {'func': None,
                                              'type': CPT.full.name,
                                              'lang': 'lua'}
    r1.connect(r2, {'input1': 'input1'})
    r1.save()
    r2.save()

    assert r2.inputs['input1'] == [{'value': 10, 'resource': r1.name,
                                    'other_input': 'input1'}]
Пример #11
0
def test_lua_full_noop(rk):
    k1 = next(rk)
    k2 = next(rk)

    r1 = create_resource(k1, {'name': 'source1',
                              'inputs': {'input1': 10}})
    r2 = create_resource(k2, {'name': 'target1',
                              'inputs': {'input1': None}})

    r2.meta_inputs['input1']['computable'] = {'func': None,
                                              'type': CPT.full.name,
                                              'lang': 'lua'}
    r1.connect(r2, {'input1': 'input1'})
    r1.save()
    r2.save()

    assert r2.inputs['input1'] == [{'value': 10, 'resource': r1.name,
                                    'other_input': 'input1'}]
Пример #12
0
def test_jinja_join_self_sum(rk):
    k1 = next(rk)

    r1 = create_resource(k1, {'name': "r1",
                              'inputs': {'input1': 3,
                                         'input2': 2,
                                         'input3': None}})
    jinja_funct = """
{{[input1, input2]|sum}}
"""

    r1.meta_inputs['input3']['computable'] = {'func': jinja_funct,
                                              'lang': 'jinja2',
                                              'type': CPT.full.name}

    r1.connect(r1, {'input1': 'input3'})
    r1.connect(r1, {'input2': 'input3'})

    r1.save()

    assert r1.inputs['input3'] == '5'
Пример #13
0
def test_jinja_join_self_computable(rk):
    k1 = next(rk)

    r1 = create_resource(k1, {'name': "r1",
                              'inputs': {'input1': 'bar',
                                         'input2': 'foo',
                                         'input3': None}})
    jinja_funct = """
{{resource_name}}{{input2}}{{input1}}
"""

    r1.meta_inputs['input3']['computable'] = {'func': jinja_funct,
                                              'lang': 'jinja2',
                                              'type': CPT.full.name}

    r1.connect(r1, {'input1': 'input3'})
    r1.connect(r1, {'input2': 'input3'})

    r1.save()

    assert r1.inputs['input3'] == 'r1foobar'
Пример #14
0
def test_python_join_self_computable(rk):
    k1 = next(rk)

    r1 = create_resource(k1, {'name': "r1",
                              'inputs': {'input1': 'bar',
                                         'input2': 'foo',
                                         'input3': None}})
    py_funct = """
return resource_name + R["r1"]["input2"] + R["r1"]["input1"]
"""

    r1.meta_inputs['input3']['computable'] = {'func': py_funct,
                                              'lang': 'py',
                                              'type': CPT.full.name}

    r1.connect(r1, {'input1': 'input3'})
    r1.connect(r1, {'input2': 'input3'})

    r1.save()

    assert r1.inputs['input3'] == 'r1foobar'
Пример #15
0
def test_jinja_join_self_sum(rk):
    k1 = next(rk)

    r1 = create_resource(k1, {'name': "r1",
                              'inputs': {'input1': 3,
                                         'input2': 2,
                                         'input3': None}})
    jinja_funct = """
{{[input1, input2]|sum}}
"""

    r1.meta_inputs['input3']['computable'] = {'func': jinja_funct,
                                              'lang': 'jinja2',
                                              'type': CPT.full.name}

    r1.connect(r1, {'input1': 'input3'})
    r1.connect(r1, {'input2': 'input3'})

    r1.save()

    assert r1.inputs['input3'] == '5'
Пример #16
0
def test_jinja_join_self_computable(rk):
    k1 = next(rk)

    r1 = create_resource(k1, {'name': "r1",
                              'inputs': {'input1': 'bar',
                                         'input2': 'foo',
                                         'input3': None}})
    jinja_funct = """
{{resource_name}}{{input2}}{{input1}}
"""

    r1.meta_inputs['input3']['computable'] = {'func': jinja_funct,
                                              'lang': 'jinja2',
                                              'type': CPT.full.name}

    r1.connect(r1, {'input1': 'input3'})
    r1.connect(r1, {'input2': 'input3'})

    r1.save()

    assert r1.inputs['input3'] == 'r1foobar'
Пример #17
0
def test_python_join_self_computable(rk):
    k1 = next(rk)

    r1 = create_resource(k1, {'name': "r1",
                              'inputs': {'input1': 'bar',
                                         'input2': 'foo',
                                         'input3': None}})
    py_funct = """
return resource_name + R["r1"]["input2"] + R["r1"]["input1"]
"""

    r1.meta_inputs['input3']['computable'] = {'func': py_funct,
                                              'lang': 'py',
                                              'type': CPT.full.name}

    r1.connect(r1, {'input1': 'input3'})
    r1.connect(r1, {'input2': 'input3'})

    r1.save()

    assert r1.inputs['input3'] == 'r1foobar'