Skip to content

Commit f3214c3

Browse files
committed
test: for shifting
1 parent 61070f4 commit f3214c3

File tree

1 file changed

+81
-3
lines changed

1 file changed

+81
-3
lines changed

tests/tree/test_modify.py

Lines changed: 81 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1095,7 +1095,7 @@ def test_shift_nodes_merge_attribute(self):
10951095
), "Original node children changed"
10961096
assert not len(
10971097
list(search.find_path(self.root_overriding, "a/aa").children)
1098-
), "Children of node parent not deleted"
1098+
), "Original node not deleted"
10991099

11001100
def test_shift_nodes_merge_attribute_update(self):
11011101
from_paths = ["a/aa/bb"]
@@ -1125,7 +1125,7 @@ def test_shift_nodes_merge_attribute_update(self):
11251125
), "Original node children changed"
11261126
assert not len(
11271127
list(search.find_path(self.root_overriding, "a/aa").children)
1128-
), "Children of node parent not deleted"
1128+
), "Original node not deleted"
11291129

11301130
def test_shift_nodes_merge_attribute_children(self):
11311131
from_paths = ["a/aa/bb"]
@@ -1158,7 +1158,7 @@ def test_shift_nodes_merge_attribute_children(self):
11581158
), "Original node children changed"
11591159
assert not len(
11601160
list(search.find_path(self.root_overriding, "a/aa").children)
1161-
), "Children of node parent not deleted"
1161+
), "Original node not deleted"
11621162
assert (
11631163
self.root_overriding["bb"]["cc"].get_attr("age") == 2
11641164
), "Original attribute of children not updated"
@@ -1369,6 +1369,37 @@ def test_shift_nodes_merge_children_overriding(self):
13691369
list(search.find_path(self.root, "a/aa").children)
13701370
), "Node parent not deleted"
13711371

1372+
# merge_children, merge_attribute
1373+
def test_shift_nodes_merge_children_merge_attribute(self):
1374+
from_paths = ["a/aa/bb"]
1375+
to_paths = ["/a/bb"]
1376+
1377+
# Set attribute for node
1378+
self.root_overriding["aa"]["bb"].set_attrs({"age": 2, "gender": "b"})
1379+
self.root_overriding["bb"].set_attrs({"age": 1, "hello": "world"})
1380+
modify.shift_nodes(
1381+
self.root_overriding,
1382+
from_paths,
1383+
to_paths,
1384+
merge_attribute=True,
1385+
merge_children=True,
1386+
)
1387+
assert (
1388+
self.root_overriding["bb"].get_attr("age") == 2
1389+
), "Original attribute not updated"
1390+
assert (
1391+
self.root_overriding["bb"].get_attr("hello") == "world"
1392+
), "Original attribute not present"
1393+
assert (
1394+
self.root_overriding["bb"].get_attr("gender") == "b"
1395+
), "Merge attribute not present"
1396+
assert (
1397+
len(self.root_overriding["bb"].children) == 2
1398+
), "Original node children not combined with copied node"
1399+
assert not len(
1400+
list(search.find_path(self.root_overriding, "a/aa").children)
1401+
), "Original node not deleted"
1402+
13721403
# merge_leaves, overriding
13731404
def test_shift_nodes_merge_leaves_overriding(self):
13741405
new_aa = node.Node("aa", parent=self.root)
@@ -1405,6 +1436,53 @@ def test_shift_nodes_merge_leaves_overriding(self):
14051436
list(search.find_path(self.root, "a/aa").children)
14061437
), "Node parent deleted"
14071438

1439+
# merge_leaves, merge_attribute
1440+
def test_shift_nodes_merge_leaves_merge_attribute(self):
1441+
from_paths = ["a/aa/bb"]
1442+
to_paths = ["/a/bb"]
1443+
1444+
# Set attribute for node
1445+
self.root_overriding["aa"]["bb"].set_attrs({"age": 2, "gender": "b"})
1446+
self.root_overriding["aa"]["bb"]["cc"].extend(
1447+
[node.Node("cc2", age=2, gender="c")]
1448+
)
1449+
self.root_overriding["bb"].set_attrs({"age": 1, "hello": "world"})
1450+
self.root_overriding["bb"]["cc2"].set_attrs({"age": 1, "hello": "world"})
1451+
modify.shift_nodes(
1452+
self.root_overriding,
1453+
from_paths,
1454+
to_paths,
1455+
merge_attribute=True,
1456+
merge_leaves=True,
1457+
)
1458+
assert (
1459+
self.root_overriding["bb"].get_attr("age") == 2
1460+
), "Original attribute not updated"
1461+
assert (
1462+
self.root_overriding["bb"].get_attr("hello") == "world"
1463+
), "Original attribute not present"
1464+
assert (
1465+
self.root_overriding["bb"].get_attr("gender") == "b"
1466+
), "Merge attribute not present"
1467+
assert (
1468+
len(self.root_overriding["bb"].children) == 2
1469+
), "Original node children not combined with copied node"
1470+
assert not len(
1471+
list(search.find_path(self.root_overriding, "a/aa").children)
1472+
), "Original node not deleted"
1473+
assert (
1474+
self.root_overriding["bb"]["cc2"].get_attr("age") == 2
1475+
), "Original attribute of leaf not updated"
1476+
assert (
1477+
self.root_overriding["bb"]["cc2"].get_attr("hello") == "world"
1478+
), "Original attribute of leaf not present"
1479+
assert (
1480+
self.root_overriding["bb"]["cc2"].get_attr("gender") == "c"
1481+
), "Merge attribute of leaf not present"
1482+
assert (
1483+
self.root_overriding["bb"]["dd"].get_attr("age") == 2
1484+
), "New leaf not copied over"
1485+
14081486
# merge_children, merge_leaves
14091487
def test_shift_nodes_merge_children_and_leaf_error(self):
14101488
a = node.Node("a", age=90)

0 commit comments

Comments
 (0)