mirror of
https://github.com/frappe/erpnext.git
synced 2026-02-15 23:54:59 +00:00
test: increase error context on test_item_group
This commit is contained in:
@@ -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))
|
||||
|
||||
Reference in New Issue
Block a user