def test_if(fake_t: Template):

    template = {"Conditions": {"test": False}}

    fake_t.template = template

    with pytest.raises(TypeError) as e:
        result = functions.if_(fake_t, {})

    assert "must be a List, not dict." in str(e.value)

    with pytest.raises(ValueError) as e:
        result = functions.if_(fake_t, [0])

    assert "True value and a False value." in str(e.value)

    with pytest.raises(TypeError) as e:
        result = functions.if_(fake_t, [0, 0, 0])

    assert "Condition should be a String, not int." in str(e.value)

    result = functions.if_(fake_t, ["test", "true_value", "false_value"])

    assert result == "false_value", "Should return the false value."

    template["Conditions"]["test"] = True

    result = functions.if_(fake_t, ["test", "true_value", "false_value"])

    assert result == "true_value", "Should return the true value."

    with pytest.raises(Exception):
        # First value should the name of the condition to lookup
        functions.if_(fake_t, [True, "True", "False"])
Exemple #2
0
def test_set_params():
    t = {}
    params = {"Foo": {"Bar"}}

    template = Template(t)

    template.set_parameters()

    assert template.template == {}, "Should do nothing if no parameters in template."

    with pytest.raises(ValueError) as e:
        template.set_parameters(params)

    assert "You supplied parameters for a template that doesn't have any." in str(
        e.value
    ), "Should throw correct exception."

    template.template = {"Parameters": {"Test": {}}}

    with pytest.raises(ValueError) as e:
        template.set_parameters()

    assert "Must provide values for parameters that don't have a default value." in str(
        e.value
    ), "Should throw correct exception."

    template.set_parameters({"Test": "value"})

    assert {"Test": {"Value": "value"}} == template.template[
        "Parameters"
    ], "Should set the value to what we pass in."

    with pytest.raises(ValueError) as e:
        template.set_parameters({"Bar": "Foo"})

    assert "You passed a Parameter that was not in the Template." in str(
        e.value
    ), "Should throw correct exception."

    template.template = {"Parameters": {"Test": {"Default": "default"}}}

    template.set_parameters()

    assert {"Test": {"Default": "default", "Value": "default"}} == template.template[
        "Parameters"
    ], "Should set default values."