diff --git a/tests/test_items.py b/tests/test_items.py index 94418bf..cefb29e 100644 --- a/tests/test_items.py +++ b/tests/test_items.py @@ -129,6 +129,19 @@ def test_aot_unwrap(): assert_is_ppo(vu, str) +def test_aot_set_item(): + d = item(["A", {"b": "B"}, ["c", "D"]]) + d[0] = "C" + assert isinstance(d[0], String) + assert d[0] == "C" + d[1]["b"] = "D" + assert isinstance(d[1], InlineTable) + assert d[1]["b"] == "D" + d[0] = ["c", "C"] + assert isinstance(d[0], Array) + assert d[0][1] == "C" + + def test_time_unwrap(): t = time(3, 8, 14) elementary_test(item(t), time) diff --git a/tomlkit/items.py b/tomlkit/items.py index b80e9f1..dcb0463 100644 --- a/tomlkit/items.py +++ b/tomlkit/items.py @@ -1885,7 +1885,7 @@ def __getitem__(self, key): return self._body[key] def __setitem__(self, key: slice | int, value: Any) -> None: - raise NotImplementedError + self._body[key] = item(value, _parent=self) def __delitem__(self, key: slice | int) -> None: del self._body[key]