| 243 | assert rose.parent == mary |
| 244 | |
| 245 | def test_overwrite_child(self) -> None: |
| 246 | john: TreeNode = TreeNode() |
| 247 | mary: TreeNode = TreeNode() |
| 248 | john._set_item("Mary", mary) |
| 249 | |
| 250 | # test overwriting not allowed |
| 251 | marys_evil_twin: TreeNode = TreeNode() |
| 252 | with pytest.raises(KeyError, match="Already a node object"): |
| 253 | john._set_item("Mary", marys_evil_twin, allow_overwrite=False) |
| 254 | assert john.children["Mary"] is mary |
| 255 | assert marys_evil_twin.parent is None |
| 256 | |
| 257 | # test overwriting allowed |
| 258 | marys_evil_twin = TreeNode() |
| 259 | john._set_item("Mary", marys_evil_twin, allow_overwrite=True) |
| 260 | assert john.children["Mary"] is marys_evil_twin |
| 261 | assert marys_evil_twin.parent is john |
| 262 | |
| 263 | |
| 264 | class TestPruning: |