mirror of
https://github.com/frappe/erpnext.git
synced 2026-05-15 03:01:22 +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_lft = min_lft - 1
|
||||||
parent_rgt = max_rgt + 1
|
parent_rgt = max_rgt + 1
|
||||||
|
|
||||||
self.assertTrue(lft)
|
self.assertTrue(lft, "has no lft")
|
||||||
self.assertTrue(rgt)
|
self.assertTrue(rgt, "has no rgt")
|
||||||
self.assertTrue(lft < rgt)
|
self.assertTrue(lft < rgt, "lft >= rgt")
|
||||||
self.assertTrue(parent_lft < parent_rgt)
|
self.assertTrue(parent_lft < parent_rgt, "parent_lft >= parent_rgt")
|
||||||
self.assertTrue(lft > parent_lft)
|
self.assertTrue(lft > parent_lft, "lft <= parent_lft")
|
||||||
self.assertTrue(rgt < parent_rgt)
|
self.assertTrue(rgt < parent_rgt, "rgt >= parent_rgt")
|
||||||
self.assertTrue(lft >= min_lft)
|
self.assertTrue(lft >= min_lft, "lft < min_lft")
|
||||||
self.assertTrue(rgt <= max_rgt)
|
self.assertTrue(rgt <= max_rgt, "rgs > max_rgt")
|
||||||
|
|
||||||
no_of_children = self.get_no_of_children(item_group["item_group_name"])
|
no_of_children = self._get_no_of_children(item_group["item_group_name"])
|
||||||
self.assertTrue(rgt == (lft + 1 + (2 * no_of_children)))
|
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)
|
no_of_children = self._get_no_of_children(parent_item_group)
|
||||||
self.assertTrue(parent_rgt == (parent_lft + 1 + (2 * no_of_children)))
|
self.assertTrue(
|
||||||
|
parent_rgt == (parent_lft + 1 + (2 * no_of_children)), "parent_rgs is not 1 + (2 * #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)
|
|
||||||
|
|
||||||
def test_recursion(self):
|
def test_recursion(self):
|
||||||
group_b = frappe.get_doc("Item Group", "_Test Item Group B")
|
group_b = frappe.get_doc("Item Group", "_Test Item Group B")
|
||||||
@@ -81,12 +66,6 @@ class TestItem(IntegrationTestCase):
|
|||||||
rebuild_tree("Item Group")
|
rebuild_tree("Item Group")
|
||||||
self.test_basic_tree()
|
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):
|
def test_move_group_into_another(self):
|
||||||
# before move
|
# before move
|
||||||
old_lft, old_rgt = frappe.db.get_value("Item Group", "_Test Item Group C", ["lft", "rgt"])
|
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
|
# adjacent siblings, hence rgt diff will be 0
|
||||||
self.assertEqual(new_rgt - old_rgt, 0)
|
self.assertEqual(new_rgt - old_rgt, 0)
|
||||||
|
|
||||||
self.move_it_back()
|
self._move_it_back()
|
||||||
|
|
||||||
def test_move_group_into_root(self):
|
def test_move_group_into_root(self):
|
||||||
group_b = frappe.get_doc("Item Group", "_Test Item Group B")
|
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
|
# trick! works because it hasn't been rolled back :D
|
||||||
self.test_basic_tree()
|
self.test_basic_tree()
|
||||||
|
|
||||||
self.move_it_back()
|
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))
|
|
||||||
|
|
||||||
def test_move_leaf_into_another_group(self):
|
def test_move_leaf_into_another_group(self):
|
||||||
# before move
|
# before move
|
||||||
@@ -233,3 +207,31 @@ class TestItem(IntegrationTestCase):
|
|||||||
"_Test Item Group B - 3",
|
"_Test Item Group B - 3",
|
||||||
merge=True,
|
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