Beispiel #1
0
 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)
Beispiel #2
0
 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)
Beispiel #3
0
    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)
Beispiel #4
0
    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)
Beispiel #5
0
 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)
Beispiel #6
0
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)