Exemplo n.º 1
0
def test_validate_action_raises_no_value(mocker):
    mocker.patch("json_modify.get_path")
    mocker.patch("json_modify.validate_marker")

    action = {"action": "add", "path": "a"}
    with pytest.raises(KeyError) as exc:
        validate_action(action, DELIM)

    expected = '"Action {}: for add action key value is required"'.format(action)
    assert str(exc.value) == expected
Exemplo n.º 2
0
def test_validate_action_raises_add_on_list_value_not_list(mocker):
    mocker.patch("json_modify.get_path", return_value=["$a"])
    mocker.patch("json_modify.validate_marker")

    action = {"action": "add", "path": "$a", "value": 10}
    with pytest.raises(TypeError) as exc:
        validate_action(action, DELIM)

    expected = "Action {}: for add action on list value should be list".format(action)
    assert str(exc.value) == expected
Exemplo n.º 3
0
def test_validate_action_raises_no_key(mocker):
    mocker.patch("json_modify.get_path")
    mocker.patch("json_modify.validate_marker")

    action = {}
    with pytest.raises(KeyError) as exc:
        validate_action(action, DELIM)

    expected = "'Action {}: key action is required'"
    assert str(exc.value) == expected
Exemplo n.º 4
0
def test_validate_action_raises_rename_value_not_dict(mocker):
    mocker.patch("json_modify.get_path")
    mocker.patch("json_modify.validate_marker")

    action = {"action": "rename", "path": "a", "value": 10}
    with pytest.raises(TypeError) as exc:
        validate_action(action, DELIM)

    expected = "Action {}: for rename action on dict value should be string".format(
        action
    )
    assert str(exc.value) == expected
Exemplo n.º 5
0
def test_validate_action(mocker):
    mocker.patch("json_modify.get_path", return_value=["a", "b"])
    mocker.patch("json_modify.validate_marker")

    action = {"action": "delete", "path": "a/b"}
    validate_action(action, DELIM)
    action = {"action": "add", "path": "a/b", "value": {"a": 10}}
    validate_action(action, DELIM)
    action = {"action": "replace", "path": "a/b", "value": 10}
    validate_action(action, DELIM)
    action = {"action": "rename", "path": "a/b", "value": "c"}
    validate_action(action, DELIM)