def test_set_parent(self): self.__create_cat_tree() a = self.__get_cat(name='a') aa = self.__get_cat(name='aa') aaa = self.__get_cat(name='aaa') aaaa = self.__get_cat(name='aaaa') b = self.__get_cat(name='b') c = self.__get_cat(name='c') d = self.__get_cat(name='d') e = self.__get_cat(name='e') f = self.__get_cat(name='f') with self.assertRaises(ValueError): a.set_parent(a) # with self.assertRaises(ValueError): # a.set_parent(aa) d.set_parent(c) e.set_parent(c) f.set_parent(c) self.assertEqual(d.tn_ancestors_pks, join_pks([c.pk])) self.assertEqual(d.get_parent(), c) self.assertEqual(e.tn_ancestors_pks, join_pks([c.pk])) self.assertEqual(e.get_parent(), c) self.assertEqual(f.tn_ancestors_pks, join_pks([c.pk])) self.assertEqual(f.get_parent(), c) self.assertEqual(c.tn_children_pks, join_pks([d.pk, e.pk, f.pk])) self.assertEqual(c.get_children(), [d, e, f])
def test_set_parent(self): self.__create_cat_tree() a = self.__get_cat(name="a") aa = self.__get_cat(name="aa") aaa = self.__get_cat(name="aaa") aaaa = self.__get_cat(name="aaaa") b = self.__get_cat(name="b") c = self.__get_cat(name="c") d = self.__get_cat(name="d") e = self.__get_cat(name="e") f = self.__get_cat(name="f") with self.assertRaises(ValueError): a.set_parent(a) # with self.assertRaises(ValueError): # a.set_parent(aa) d.set_parent(c) e.set_parent(c) f.set_parent(c) self.assertEqual(d.tn_ancestors_pks, join_pks([c.pk])) self.assertEqual(d.get_parent(), c) self.assertEqual(e.tn_ancestors_pks, join_pks([c.pk])) self.assertEqual(e.get_parent(), c) self.assertEqual(f.tn_ancestors_pks, join_pks([c.pk])) self.assertEqual(f.get_parent(), c) self.assertEqual(c.tn_children_pks, join_pks([d.pk, e.pk, f.pk])) self.assertEqual(c.get_children(), [d, e, f])
def test_join_pks(self): s = join_pks(None) self.assertEqual(s, "") s = join_pks([]) self.assertEqual(s, "") s = join_pks([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]) self.assertEqual(s, "0,1,2,3,4,5,6,7,8,9,10")
def test_get_ancestors(self): self.__create_cat_tree() a = self.__get_cat(name='a') aa = self.__get_cat(name='aa') aaa = self.__get_cat(name='aaa') aaaa = self.__get_cat(name='aaaa') self.assertEqual(aaaa.tn_ancestors_pks, join_pks([a.pk, aa.pk, aaa.pk])) self.assertEqual(aaaa.get_ancestors(), [a, aa, aaa])
def test_update_on_create(self): a = self.__create_cat(name="a") self.assertEqual(a.tn_children_pks, "") self.assertEqual(a.tn_ancestors_pks, "") self.assertEqual(a.tn_siblings_pks, "") self.assertEqual(a.tn_depth, 0) self.assertEqual(a.tn_index, 0) self.assertEqual(a.tn_level, 1) b = self.__create_cat(name="b") c = self.__create_cat(name="c") self.assertEqual(a.tn_children_pks, "") self.assertEqual(a.tn_ancestors_pks, "") self.assertEqual(a.tn_siblings_pks, join_pks([b.pk, c.pk])) aa = self.__create_cat(name="aa", parent=a) ab = self.__create_cat(name="ab", parent=a) ac = self.__create_cat(name="ac", parent=a) self.assertEqual(a.tn_children_pks, join_pks([aa.pk, ab.pk, ac.pk])) self.assertEqual(a.tn_depth, 1)
def test_update_on_create(self): a = self.__create_cat(name='a') self.assertEqual(a.tn_children_pks, '') self.assertEqual(a.tn_ancestors_pks, '') self.assertEqual(a.tn_siblings_pks, '') self.assertEqual(a.tn_depth, 0) self.assertEqual(a.tn_index, 0) self.assertEqual(a.tn_level, 1) b = self.__create_cat(name='b') c = self.__create_cat(name='c') self.assertEqual(a.tn_children_pks, '') self.assertEqual(a.tn_ancestors_pks, '') self.assertEqual(a.tn_siblings_pks, join_pks([b.pk, c.pk])) aa = self.__create_cat(name='aa', parent=a) ab = self.__create_cat(name='ab', parent=a) ac = self.__create_cat(name='ac', parent=a) self.assertEqual(a.tn_children_pks, join_pks([aa.pk, ab.pk, ac.pk])) self.assertEqual(a.tn_depth, 1)
def test_get_children(self): self.__create_cat_tree() a = self.__get_cat(name='a') aa = self.__get_cat(name='aa') ab = self.__get_cat(name='ab') ac = self.__get_cat(name='ac') ad = self.__get_cat(name='ad') ae = self.__get_cat(name='ae') af = self.__get_cat(name='af') self.assertEqual(a.tn_children_pks, join_pks([aa.pk, ab.pk, ac.pk, ad.pk, ae.pk, af.pk])) self.assertEqual(a.get_children(), [aa, ab, ac, ad, ae, af])
def test_get_children(self): self.__create_cat_tree() a = self.__get_cat(name="a") aa = self.__get_cat(name="aa") ab = self.__get_cat(name="ab") ac = self.__get_cat(name="ac") ad = self.__get_cat(name="ad") ae = self.__get_cat(name="ae") af = self.__get_cat(name="af") self.assertEqual(a.tn_children_pks, join_pks([aa.pk, ab.pk, ac.pk, ad.pk, ae.pk, af.pk])) self.assertEqual(a.get_children(), [aa, ab, ac, ad, ae, af])
def test_update_on_delete(self): self.__create_cat_tree() a = self.__get_cat(name="a") aa = self.__get_cat(name="aa") ab = self.__get_cat(name="ab") ac = self.__get_cat(name="ac") ad = self.__get_cat(name="ad") ae = self.__get_cat(name="ae") af = self.__get_cat(name="af") self._category_model.objects.filter(name="aa").delete() self.assertEqual(a.tn_children_pks, join_pks([ab.pk, ac.pk, ad.pk, ae.pk, af.pk])) self.assertEqual(a.tn_children_count, 5) self.assertTrue(ab.is_first_child()) self._category_model.objects.filter(name="ab").delete() self.assertEqual(a.tn_children_pks, join_pks([ac.pk, ad.pk, ae.pk, af.pk])) self.assertEqual(a.tn_children_count, 4) self.assertTrue(ac.is_first_child()) self._category_model.objects.filter(name="ac").delete() self.assertEqual(a.tn_children_pks, join_pks([ad.pk, ae.pk, af.pk])) self.assertEqual(a.tn_children_count, 3) self.assertTrue(ad.is_first_child()) self._category_model.objects.filter(name="ad").delete() self.assertEqual(a.tn_children_pks, join_pks([ae.pk, af.pk])) self.assertEqual(a.tn_children_count, 2) self.assertTrue(ae.is_first_child()) self._category_model.objects.filter(name="ae").delete() self.assertEqual(a.tn_children_pks, join_pks([af.pk])) self.assertEqual(a.tn_children_count, 1) self.assertTrue(af.is_first_child()) self._category_model.objects.filter(name="af").delete() self.assertEqual(a.tn_children_pks, join_pks([])) self.assertEqual(a.tn_children_count, 0) self._category_model.objects.filter(name="a").delete() self._category_model.objects.filter(name="b").delete() self._category_model.objects.filter(name="c").delete() with self.assertRaises(self._category_model.DoesNotExist): a = self.__get_cat(name="a") with self.assertRaises(self._category_model.DoesNotExist): aa = self.__get_cat(name="aa") with self.assertRaises(self._category_model.DoesNotExist): aaa = self.__get_cat(name="aaa") with self.assertRaises(self._category_model.DoesNotExist): aaa = self.__get_cat(name="aaaa") with self.assertRaises(self._category_model.DoesNotExist): b = self.__get_cat(name="b") with self.assertRaises(self._category_model.DoesNotExist): c = self.__get_cat(name="c") d = self.__get_cat(name="d") self.assertTrue(d.is_first_child()) self.assertEqual(d.get_siblings_count(), 2)
def test_update_on_delete(self): self.__create_cat_tree() a = self.__get_cat(name='a') aa = self.__get_cat(name='aa') ab = self.__get_cat(name='ab') ac = self.__get_cat(name='ac') ad = self.__get_cat(name='ad') ae = self.__get_cat(name='ae') af = self.__get_cat(name='af') Category.objects.filter(name='aa').delete() self.assertEqual(a.tn_children_pks, join_pks([ab.pk, ac.pk, ad.pk, ae.pk, af.pk])) self.assertEqual(a.tn_children_count, 5) self.assertTrue(ab.is_first_child()) Category.objects.filter(name='ab').delete() self.assertEqual(a.tn_children_pks, join_pks([ac.pk, ad.pk, ae.pk, af.pk])) self.assertEqual(a.tn_children_count, 4) self.assertTrue(ac.is_first_child()) Category.objects.filter(name='ac').delete() self.assertEqual(a.tn_children_pks, join_pks([ad.pk, ae.pk, af.pk])) self.assertEqual(a.tn_children_count, 3) self.assertTrue(ad.is_first_child()) Category.objects.filter(name='ad').delete() self.assertEqual(a.tn_children_pks, join_pks([ae.pk, af.pk])) self.assertEqual(a.tn_children_count, 2) self.assertTrue(ae.is_first_child()) Category.objects.filter(name='ae').delete() self.assertEqual(a.tn_children_pks, join_pks([af.pk])) self.assertEqual(a.tn_children_count, 1) self.assertTrue(af.is_first_child()) Category.objects.filter(name='af').delete() self.assertEqual(a.tn_children_pks, join_pks([])) self.assertEqual(a.tn_children_count, 0) Category.objects.filter(name='a').delete() Category.objects.filter(name='b').delete() Category.objects.filter(name='c').delete() with self.assertRaises(Category.DoesNotExist): a = self.__get_cat(name='a') with self.assertRaises(Category.DoesNotExist): aa = self.__get_cat(name='aa') with self.assertRaises(Category.DoesNotExist): aaa = self.__get_cat(name='aaa') with self.assertRaises(Category.DoesNotExist): aaa = self.__get_cat(name='aaaa') with self.assertRaises(Category.DoesNotExist): b = self.__get_cat(name='b') with self.assertRaises(Category.DoesNotExist): c = self.__get_cat(name='c') d = self.__get_cat(name='d') self.assertTrue(d.is_first_child()) self.assertEqual(d.get_siblings_count(), 2)
def test_get_siblings(self): self.__create_cat_tree() a = self.__get_cat(name="a") b = self.__get_cat(name="b") c = self.__get_cat(name="c") d = self.__get_cat(name="d") e = self.__get_cat(name="e") f = self.__get_cat(name="f") self.assertEqual(a.tn_siblings_pks, join_pks([b.pk, c.pk, d.pk, e.pk, f.pk])) self.assertEqual(b.tn_siblings_pks, join_pks([a.pk, c.pk, d.pk, e.pk, f.pk])) self.assertEqual(c.tn_siblings_pks, join_pks([a.pk, b.pk, d.pk, e.pk, f.pk])) self.assertEqual(d.tn_siblings_pks, join_pks([a.pk, b.pk, c.pk, e.pk, f.pk])) self.assertEqual(e.tn_siblings_pks, join_pks([a.pk, b.pk, c.pk, d.pk, f.pk])) self.assertEqual(f.tn_siblings_pks, join_pks([a.pk, b.pk, c.pk, d.pk, e.pk])) self.assertEqual(a.get_siblings(), [b, c, d, e, f]) self.assertEqual(b.get_siblings(), [a, c, d, e, f]) self.assertEqual(c.get_siblings(), [a, b, d, e, f]) self.assertEqual(d.get_siblings(), [a, b, c, e, f]) self.assertEqual(e.get_siblings(), [a, b, c, d, f]) self.assertEqual(f.get_siblings(), [a, b, c, d, e]) aa = self.__get_cat(name="aa") ab = self.__get_cat(name="ab") ac = self.__get_cat(name="ac") ad = self.__get_cat(name="ad") ae = self.__get_cat(name="ae") af = self.__get_cat(name="af") self.assertEqual(aa.tn_siblings_pks, join_pks([ab.pk, ac.pk, ad.pk, ae.pk, af.pk])) self.assertEqual(ab.tn_siblings_pks, join_pks([aa.pk, ac.pk, ad.pk, ae.pk, af.pk])) self.assertEqual(ac.tn_siblings_pks, join_pks([aa.pk, ab.pk, ad.pk, ae.pk, af.pk])) self.assertEqual(ad.tn_siblings_pks, join_pks([aa.pk, ab.pk, ac.pk, ae.pk, af.pk])) self.assertEqual(ae.tn_siblings_pks, join_pks([aa.pk, ab.pk, ac.pk, ad.pk, af.pk])) self.assertEqual(af.tn_siblings_pks, join_pks([aa.pk, ab.pk, ac.pk, ad.pk, ae.pk])) self.assertEqual(aa.get_siblings(), [ab, ac, ad, ae, af]) self.assertEqual(ab.get_siblings(), [aa, ac, ad, ae, af]) self.assertEqual(ac.get_siblings(), [aa, ab, ad, ae, af]) self.assertEqual(ad.get_siblings(), [aa, ab, ac, ae, af]) self.assertEqual(ae.get_siblings(), [aa, ab, ac, ad, af]) self.assertEqual(af.get_siblings(), [aa, ab, ac, ad, ae])
def test_get_siblings(self): self.__create_cat_tree() a = self.__get_cat(name='a') b = self.__get_cat(name='b') c = self.__get_cat(name='c') d = self.__get_cat(name='d') e = self.__get_cat(name='e') f = self.__get_cat(name='f') self.assertEqual(a.tn_siblings_pks, join_pks([b.pk, c.pk, d.pk, e.pk, f.pk])) self.assertEqual(b.tn_siblings_pks, join_pks([a.pk, c.pk, d.pk, e.pk, f.pk])) self.assertEqual(c.tn_siblings_pks, join_pks([a.pk, b.pk, d.pk, e.pk, f.pk])) self.assertEqual(d.tn_siblings_pks, join_pks([a.pk, b.pk, c.pk, e.pk, f.pk])) self.assertEqual(e.tn_siblings_pks, join_pks([a.pk, b.pk, c.pk, d.pk, f.pk])) self.assertEqual(f.tn_siblings_pks, join_pks([a.pk, b.pk, c.pk, d.pk, e.pk])) self.assertEqual(a.get_siblings(), [b, c, d, e, f]) self.assertEqual(b.get_siblings(), [a, c, d, e, f]) self.assertEqual(c.get_siblings(), [a, b, d, e, f]) self.assertEqual(d.get_siblings(), [a, b, c, e, f]) self.assertEqual(e.get_siblings(), [a, b, c, d, f]) self.assertEqual(f.get_siblings(), [a, b, c, d, e]) aa = self.__get_cat(name='aa') ab = self.__get_cat(name='ab') ac = self.__get_cat(name='ac') ad = self.__get_cat(name='ad') ae = self.__get_cat(name='ae') af = self.__get_cat(name='af') self.assertEqual(aa.tn_siblings_pks, join_pks([ab.pk, ac.pk, ad.pk, ae.pk, af.pk])) self.assertEqual(ab.tn_siblings_pks, join_pks([aa.pk, ac.pk, ad.pk, ae.pk, af.pk])) self.assertEqual(ac.tn_siblings_pks, join_pks([aa.pk, ab.pk, ad.pk, ae.pk, af.pk])) self.assertEqual(ad.tn_siblings_pks, join_pks([aa.pk, ab.pk, ac.pk, ae.pk, af.pk])) self.assertEqual(ae.tn_siblings_pks, join_pks([aa.pk, ab.pk, ac.pk, ad.pk, af.pk])) self.assertEqual(af.tn_siblings_pks, join_pks([aa.pk, ab.pk, ac.pk, ad.pk, ae.pk])) self.assertEqual(aa.get_siblings(), [ab, ac, ad, ae, af]) self.assertEqual(ab.get_siblings(), [aa, ac, ad, ae, af]) self.assertEqual(ac.get_siblings(), [aa, ab, ad, ae, af]) self.assertEqual(ad.get_siblings(), [aa, ab, ac, ae, af]) self.assertEqual(ae.get_siblings(), [aa, ab, ac, ad, af]) self.assertEqual(af.get_siblings(), [aa, ab, ac, ad, ae])