def test_outputs_are_set():
    j = AlgorithmJobFactory()
    j.create_result(result={"dsaf": 35421})

    outputs = j.outputs.all()
    assert len(outputs) == 1
    assert outputs[0].interface.kind == InterfaceKindChoices.JSON
    assert outputs[0].value == {"dsaf": 35421}

    job = AlgorithmJobFactory()
    job.create_result(result={"foo": 13.37})

    outputs = job.outputs.all()
    assert len(outputs) == 1
    assert outputs[0].interface.kind == InterfaceKindChoices.JSON
    assert outputs[0].value == {"foo": 13.37}

    job.create_result(result={"bar": 13.37})
    job.refresh_from_db()

    outputs = job.outputs.all()
    assert len(outputs) == 1
    assert outputs[0].interface.kind == InterfaceKindChoices.JSON
    assert outputs[0].value == {"bar": 13.37}

    # the original job should not be modified
    j.refresh_from_db()
    outputs = j.outputs.all()
    assert len(outputs) == 1
    assert outputs[0].interface.kind == InterfaceKindChoices.JSON
    assert outputs[0].value == {"dsaf": 35421}
Example #2
0
def test_outputs_are_set():
    j = AlgorithmJobFactory()
    j.create_result(result={"dsaf": 35421})

    outputs = j.outputs.all()
    assert len(outputs) == 1
    assert outputs[0].interface.kind == InterfaceKindChoices.JSON
    assert outputs[0].value == {"dsaf": 35421}

    job = AlgorithmJobFactory()
    job.create_result(result={"foo": 13.37})

    outputs = job.outputs.all()
    assert len(outputs) == 1
    assert outputs[0].interface.kind == InterfaceKindChoices.JSON
    assert outputs[0].value == {"foo": 13.37}

    job.create_result(result={"bar": 13.37})
    job.refresh_from_db()

    outputs = job.outputs.all()
    assert len(outputs) == 1
    assert outputs[0].interface.kind == InterfaceKindChoices.JSON
    assert outputs[0].value == {"bar": 13.37}

    # the original job should not be modified
    j.refresh_from_db()
    outputs = j.outputs.all()
    assert len(outputs) == 1
    assert outputs[0].interface.kind == InterfaceKindChoices.JSON
    assert outputs[0].value == {"dsaf": 35421}

    job = AlgorithmJobFactory()
    job.algorithm_image.algorithm.result_template = (
        "foo score: {{result_dict.foo}}")

    assert job.rendered_result_text == ""
    job.create_result(result={"foo": 13.37})
    del job.rendered_result_text
    assert job.rendered_result_text == "<p>foo score: 13.37</p>"

    job.algorithm_image.algorithm.result_template = "{% for key, value in dict.metrics.items() -%}{{ key }}  {{ value }}{% endfor %}"
    del job.rendered_result_text
    assert job.rendered_result_text == "Jinja template is invalid"

    job.algorithm_image.algorithm.result_template = "{{ str.__add__('test')}}"
    del job.rendered_result_text
    assert job.rendered_result_text == "Jinja template is invalid"