def test_without_parent_one_same_tree_level_shift_value(self): tl_initial_1 = TextLabelFactory(order=1) # Order: 1 tl_initial_2 = TextLabelFactory(order=2) # Order: 2 tl_new_1 = TextLabelFactory(order=1) # Order: 1 tl_initial_1.refresh_from_db() tl_initial_2.refresh_from_db() self.assertEqual(tl_new_1.order, 1) self.assertEqual(tl_initial_1.order, 2) self.assertEqual(tl_initial_2.order, 3)
def test_with_one_parent_one_same_tree_level_shift_value(self): parent = TextLabelFactory(order=1) tl_child_initial_1 = TextLabelFactory(parent=parent, order=1) tl_child_initial_2 = TextLabelFactory(parent=parent, order=4) tl_child_new_2 = TextLabelFactory(parent=parent, order=2) tl_child_initial_1.refresh_from_db() tl_child_initial_2.refresh_from_db() self.assertEqual(parent.order, 1) self.assertEqual(tl_child_initial_1.order, 1) self.assertEqual(tl_child_initial_2.order, 3) self.assertEqual(tl_child_new_2.order, 2)
def test_change_parent_go_up_one_level(self): a = TextLabelFactory() b = TextLabelFactory(parent=a) c = TextLabelFactory(parent=b) c.parent = a c.save() self.assertEqual(c.parent, a) self.assertEqual(c.order, 1) b.refresh_from_db() self.assertEqual(b.order, 2)
def test_change_parent_go_root_recompute_child(self): root = TextLabelFactory() child_1 = TextLabelFactory(parent=root) child_2 = TextLabelFactory(parent=root) child_1.parent = None child_1.save() root.refresh_from_db() child_2.refresh_from_db() self.assertEqual(root.parent, None) self.assertEqual(root.order, 2) self.assertEqual(child_1.parent, None) self.assertEqual(child_1.order, 1) self.assertEqual(child_2.parent, root) self.assertEqual(child_2.order, 1)
def test_with_multiple_parent_one_same_tree_level_shift_value(self): parent_1 = TextLabelFactory(order=1) parent_2 = TextLabelFactory(order=2) parent_3 = TextLabelFactory(order=3) self.assertEqual(parent_1.order, 1) self.assertEqual(parent_2.order, 2) self.assertEqual(parent_3.order, 3) tl_child_parent_1_initial_1 = TextLabelFactory(parent=parent_1) tl_child_parent_1_new_1 = TextLabelFactory(parent=parent_1, order=1) tl_child_parent_1_initial_1.refresh_from_db() self.assertEqual(tl_child_parent_1_initial_1.order, 2) self.assertEqual(tl_child_parent_1_new_1.order, 1) tl_child_parent_2_initial_1 = TextLabelFactory(parent=parent_2, order=1) tl_child_parent_2_initial_2 = TextLabelFactory(parent=parent_2, order=2) self.assertEqual(tl_child_parent_2_initial_1.order, 1) self.assertEqual(tl_child_parent_2_initial_2.order, 2)
class TextLabelComplexeStructureTest(TestCase): def setUp(self): self.A = TextLabelFactory(order=1) self.B = TextLabelFactory(parent=self.A, order=1) self.C = TextLabelFactory(parent=self.A, order=2) self.D = TextLabelFactory(parent=self.B, order=1) self.E = TextLabelFactory(parent=self.C, order=1) self.F = TextLabelFactory(parent=self.C, order=2) self.G = TextLabelFactory(parent=self.C, order=3) def test_move_to_root_structure(self): self.B.parent = None self.B.save() self.A.refresh_from_db() self.C.refresh_from_db() self.assertEqual(self.B.parent, None) self.assertEqual(self.B.order, 1) #Root level self.assertEqual(self.A.order, 2) #Root level self.assertEqual(self.C.order, 1) def test_change_order_second_level(self): self.B.order = 4 #not exist self.B.save() self.C.refresh_from_db() self.assertEqual(self.B.order, 2) #Inversion self.assertEqual(self.C.order, 1) #Inversion def test_change_on_same_level_no_change_as_result(self): self.E.order = 2 self.E.save() self.F.refresh_from_db() self.G.refresh_from_db() # No change because we have reorder value self.assertEqual(self.E.order, 1) self.assertEqual(self.F.order, 2) self.assertEqual(self.G.order, 3)