Added nested_set tests
This commit is contained in:
parent
e5c0f5c1d1
commit
461642a529
63
tests/test_nested_set.py
Normal file
63
tests/test_nested_set.py
Normal file
@ -0,0 +1,63 @@
|
||||
from typing import Any, List
|
||||
|
||||
import pytest
|
||||
|
||||
from libbot import sync
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"target, value, path, create_missing, expected",
|
||||
[
|
||||
({"foo": "bar"}, "rab", ["foo"], True, {"foo": "rab"}),
|
||||
({"foo": "bar"}, {"123": 456}, ["foo"], True, {"foo": {"123": 456}}),
|
||||
(
|
||||
{"foo": {"bar": {}}},
|
||||
True,
|
||||
["foo", "bar", "test"],
|
||||
True,
|
||||
{"foo": {"bar": {"test": True}}},
|
||||
),
|
||||
(
|
||||
{"foo": {"bar": {}}},
|
||||
True,
|
||||
["foo", "bar", "test"],
|
||||
False,
|
||||
{"foo": {"bar": {}}},
|
||||
),
|
||||
],
|
||||
)
|
||||
def test_nested_set_valid(
|
||||
target: dict[str, Any],
|
||||
value: Any,
|
||||
path: List[str],
|
||||
create_missing: bool,
|
||||
expected: Any,
|
||||
):
|
||||
assert (
|
||||
sync.nested_set(target, value, *path, create_missing=create_missing)
|
||||
) == expected
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"target, value, path, create_missing, expected",
|
||||
[
|
||||
(
|
||||
{"foo": {"bar": {}}},
|
||||
True,
|
||||
["foo", "bar", "test1", "test2"],
|
||||
False,
|
||||
KeyError,
|
||||
),
|
||||
],
|
||||
)
|
||||
def test_nested_set_invalid(
|
||||
target: dict[str, Any],
|
||||
value: Any,
|
||||
path: List[str],
|
||||
create_missing: bool,
|
||||
expected: Any,
|
||||
):
|
||||
with pytest.raises(expected):
|
||||
assert (
|
||||
sync.nested_set(target, value, *path, create_missing=create_missing)
|
||||
) == expected
|
Loading…
Reference in New Issue
Block a user