test: increase error context on test_item_group

This commit is contained in:
David
2024-10-12 11:56:28 +02:00
parent d8b0b92925
commit 5cc86dae2b

View File

@@ -36,37 +36,22 @@ class TestItem(IntegrationTestCase):
parent_lft = min_lft - 1
parent_rgt = max_rgt + 1
self.assertTrue(lft)
self.assertTrue(rgt)
self.assertTrue(lft < rgt)
self.assertTrue(parent_lft < parent_rgt)
self.assertTrue(lft > parent_lft)
self.assertTrue(rgt < parent_rgt)
self.assertTrue(lft >= min_lft)
self.assertTrue(rgt <= max_rgt)
self.assertTrue(lft, "has no lft")
self.assertTrue(rgt, "has no rgt")
self.assertTrue(lft < rgt, "lft >= rgt")
self.assertTrue(parent_lft < parent_rgt, "parent_lft >= parent_rgt")
self.assertTrue(lft > parent_lft, "lft <= parent_lft")
self.assertTrue(rgt < parent_rgt, "rgt >= parent_rgt")
self.assertTrue(lft >= min_lft, "lft < min_lft")
self.assertTrue(rgt <= max_rgt, "rgs > max_rgt")
no_of_children = self.get_no_of_children(item_group["item_group_name"])
self.assertTrue(rgt == (lft + 1 + (2 * no_of_children)))
no_of_children = self._get_no_of_children(item_group["item_group_name"])
self.assertTrue(rgt == (lft + 1 + (2 * no_of_children)), "rgt is not lft + 1 + (2 * #children)")
no_of_children = self.get_no_of_children(parent_item_group)
self.assertTrue(parent_rgt == (parent_lft + 1 + (2 * no_of_children)))
def get_no_of_children(self, item_group):
def get_no_of_children(item_groups, no_of_children):
children = []
for ig in item_groups:
children += frappe.db.sql_list(
"""select name from `tabItem Group`
where ifnull(parent_item_group, '')=%s""",
ig or "",
)
if len(children):
return get_no_of_children(children, no_of_children + len(children))
else:
return no_of_children
return get_no_of_children([item_group], 0)
no_of_children = self._get_no_of_children(parent_item_group)
self.assertTrue(
parent_rgt == (parent_lft + 1 + (2 * no_of_children)), "parent_rgs is not 1 + (2 * #children)"
)
def test_recursion(self):
group_b = frappe.get_doc("Item Group", "_Test Item Group B")
@@ -81,12 +66,6 @@ class TestItem(IntegrationTestCase):
rebuild_tree("Item Group")
self.test_basic_tree()
def move_it_back(self):
group_b = frappe.get_doc("Item Group", "_Test Item Group B")
group_b.parent_item_group = "All Item Groups"
group_b.save()
self.test_basic_tree()
def test_move_group_into_another(self):
# before move
old_lft, old_rgt = frappe.db.get_value("Item Group", "_Test Item Group C", ["lft", "rgt"])
@@ -108,7 +87,7 @@ class TestItem(IntegrationTestCase):
# adjacent siblings, hence rgt diff will be 0
self.assertEqual(new_rgt - old_rgt, 0)
self.move_it_back()
self._move_it_back()
def test_move_group_into_root(self):
group_b = frappe.get_doc("Item Group", "_Test Item Group B")
@@ -118,12 +97,7 @@ class TestItem(IntegrationTestCase):
# trick! works because it hasn't been rolled back :D
self.test_basic_tree()
self.move_it_back()
def print_tree(self):
import json
print(json.dumps(frappe.db.sql("select name, lft, rgt from `tabItem Group` order by lft"), indent=1))
self._move_it_back()
def test_move_leaf_into_another_group(self):
# before move
@@ -233,3 +207,31 @@ class TestItem(IntegrationTestCase):
"_Test Item Group B - 3",
merge=True,
)
def _move_it_back(self):
group_b = frappe.get_doc("Item Group", "_Test Item Group B")
group_b.parent_item_group = "All Item Groups"
group_b.save()
self.test_basic_tree()
def _get_no_of_children(self, item_group):
def get_no_of_children(item_groups, no_of_children):
children = []
for ig in item_groups:
children += frappe.db.sql_list(
"""select name from `tabItem Group`
where ifnull(parent_item_group, '')=%s""",
ig or "",
)
if len(children):
return get_no_of_children(children, no_of_children + len(children))
else:
return no_of_children
return get_no_of_children([item_group], 0)
def _print_tree(self):
import json
print(json.dumps(frappe.db.sql("select name, lft, rgt from `tabItem Group` order by lft"), indent=1))