import unittest
from ness.models import Foo
import ness
class NessTestCase(unittest.TestCase):
def setUp(self):
Foo.objects.all().delete()
def testAdd(self):
foo = Foo(name='first')
foo.save()
self.assert_(1 == Foo.objects.all().count())
foo = Foo.objects.get(name='first')
self.assertEqual(0,foo.ness_level)
self.assertEqual(0,foo.ness_left)
self.assertEqual(0,foo.ness_right)
foo = ness.add(foo)
self.assertEqual(1,foo.ness_left)
self.assertEqual(2,foo.ness_right)
self.assertEqual(1,foo.ness_level)
foo2 = Foo(name='second',parent=foo)
foo2.save()
foo2 = ness.add(foo2)
foo = Foo.objects.get(pk=foo.id)
self.assertEqual(1,foo.ness_left)
self.assertEqual(4,foo.ness_right)
self.assertEqual(1,foo.ness_level)
self.assertEqual(2,foo2.ness_left)
self.assertEqual(3,foo2.ness_right)
self.assertEqual(2,foo2.ness_level)
self.assertEqual(True,ness.test1(Foo))
self.assertEqual(True,ness.test2(Foo))
self.assertEqual(True,ness.test3(Foo))
self.assertEqual(True,ness.test4(Foo))
def testDelete(self):
foo = Foo(name='first')
foo.save()
foo = ness.add(foo)
foo2 = Foo(name='second',parent=foo)
foo2.save()
foo2 = ness.add(foo2)
foo3 = Foo(name='fird',parent=foo2)
foo3.save()
foo3 = ness.add(foo3)
foo4 = Foo(name='fourth',parent=foo)
foo4.save()
foo4 = ness.add(foo4)
ness.delete(foo2)
foo = Foo.objects.get(pk=foo.id)
foo4 = Foo.objects.get(pk=foo4.id)
self.assertEqual(2,Foo.objects.all().count())
self.assertEqual(1,foo.ness_left)
self.assertEqual(4,foo.ness_right)
self.assertEqual(2,foo4.ness_left)
self.assertEqual(3,foo4.ness_right)
self.assertEqual(True,ness.test1(Foo))
self.assertEqual(True,ness.test2(Foo))
self.assertEqual(True,ness.test3(Foo))
self.assertEqual(True,ness.test4(Foo))
def testChilds(self):
foo = Foo(name='first')
foo.save()
foo = ness.add(foo)
foo2 = Foo(name='second',parent=foo)
foo2.save()
foo2 = ness.add(foo2)
foo3 = Foo(name='fird',parent=foo2)
foo3.save()
foo3 = ness.add(foo3)
ids = [x.id for x in ness.childs(foo3)]
self.assertTrue(foo3.id not in ids)
self.assertTrue(foo2.id not in ids)
self.assertTrue(foo.id not in ids)
foo2 = Foo.objects.get(pk=foo2.id)
ids = [x.id for x in ness.childs(foo2)]
self.assertTrue(foo3.id in ids)
self.assertTrue(foo2.id not in ids)
self.assertTrue(foo.id not in ids)
foo = Foo.objects.get(pk=foo.id)
ids = [x.id for x in ness.childs(foo)]
self.assertTrue(foo3.id in ids)
self.assertTrue(foo2.id in ids)
self.assertTrue(foo.id not in ids)
def testChilds(self):
foo = Foo(name='first')
foo.save()
foo = ness.add(foo)
foo2 = Foo(name='second',parent=foo)
foo2.save()
foo2 = ness.add(foo2)
foo3 = Foo(name='fird',parent=foo2)
foo3.save()
foo3 = ness.add(foo3)
ids = [x.id for x in ness.parents(foo3)]
self.assertTrue(foo3.id not in ids)
self.assertTrue(foo2.id in ids)
self.assertTrue(foo.id in ids)
foo2 = Foo.objects.get(pk=foo2.id)
ids = [x.id for x in ness.parents(foo2)]
self.assertTrue(foo3.id not in ids)
self.assertTrue(foo2.id not in ids)
self.assertTrue(foo.id in ids)
foo = Foo.objects.get(pk=foo.id)
ids = [x.id for x in ness.parents(foo)]
self.assertTrue(foo3.id not in ids)
self.assertTrue(foo2.id not in ids)
self.assertTrue(foo.id not in ids)