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