def test_add_child_to_path(self):
     cont = container.ObjectContainer("test")
     obj = container.ObjectContainer("test")
     cont._add_to_path("com.nokia", obj)
     self.assertEquals(cont._list(), ['com'])
     self.assertEquals(cont.com.nokia._list(), ['test'])
     self.assertEquals(cont.com.nokia.test, obj)
 def test_add_child(self):
     cont = container.ObjectContainer("root")
     obj = container.ObjectContainer("test")
     cont._add(obj)
     cont._add(container.ObjectContainer("foo"))
     self.assertEquals(cont._list(), ['test', 'foo'])
     self.assertEquals(cont.test, obj)
 def test_add_children_and_list_all(self):
     cont = container.ObjectContainer("test")
     obj = TestC()
     cont._add_to_path("com.nokia", container.ObjectContainer("test"))
     cont._add_to_path("com.nokia", container.ObjectContainer("foo"))
     cont._add_to_path("com", container.ObjectContainer("bar"))
     self.assertEquals(len(cont._traverse()), 5)
 def test_add_child_and_get(self):
     cont = container.ObjectContainer("test")
     obj = container.ObjectContainer("test")
     cont._add_to_path("com.nokia", obj)
     self.assertEquals(cont._get('com.nokia.test'), obj)
     self.assertEquals(cont.com._get('nokia.test'), obj)
     self.assertEquals(cont.com.nokia._get('test'), obj)
 def test_replace(self):
     cont = container.ObjectContainer("test")
     t1 = container.ObjectContainer('test')
     cont._replace(t1)
     self.assertEquals(cont.test, t1)
     t2 = container.ObjectContainer('test')
     cont._replace(t2)
     self.assertEquals(cont.test, t2)
 def test_add_child_to_existing_path_prepend(self):
     cont = container.ObjectContainer("test")
     obj = container.ObjectContainer("test")
     cont._add_to_path("com.nokia", obj)
     com = container.ObjectContainer("com")
     cont._add(com, policy=container.PREPEND)
     self.assertEquals(len(cont._get('com')), 2)
     self.assertEquals(cont._get('com')[0], com)
 def test_add_children_and_traverse_and_get_path(self):
     cont = container.ObjectContainer("default")
     cont._add_to_path("com.nokia", container.ObjectContainer("test"))
     cont._add_to_path("com.nokia", container.ObjectContainer("foo"))
     cont._add_to_path("com", container.ObjectContainer("bar"))
     cont.com._list()
     self.assertEquals(cont._traverse()[0]._path(), "default.com")
     self.assertEquals(cont._traverse()[0]._path(cont), "com")
     self.assertEquals(cont._traverse()[0]._path(cont.com), "")
 def test_add_child_and_remove_one(self):
     cont = container.ObjectContainer("test")
     obj = container.ObjectContainer("test")
     cont._add_to_path("com.nokia", obj)
     cont._add_to_path("com.nokia", container.ObjectContainer("foo"))
     cont._add_to_path("com", container.ObjectContainer("bar"))
     self.assertEquals(len(cont._traverse()), 5)
     cont._remove("com.nokia.foo")
     self.assertEquals(len(cont._traverse()), 4)
 def test_add_children_and_traverse_filter_name_many(self):
     cont = container.ObjectContainer("default")
     cont._add_to_path("com.nokia", container.ObjectContainer("test"))
     cont._add_to_path("com.nokia", container.ObjectContainer("foo"))
     cont._add_to_path("com", container.ObjectContainer("bar"))
     cont.com._list()
     ret = cont._traverse(path=".*nokia.*")
     self.assertEquals(len(ret), 3)
     self.assertEquals(ret[0]._path(), "default.com.nokia")
 def test__traverse_depth(self):
     cont = container.ObjectContainer("cont")
     obj1 = container.ObjectContainer("test1")
     obj2 = container.ObjectContainer("test2")
     cont._add_to_path("com.nokia", obj1)
     cont._add_to_path("com.nokia", obj2)
     self.assertEquals(len(cont._traverse()), 4)
     self.assertEquals(len(cont._traverse(depth=1)), 1)
     self.assertEquals(len(cont._traverse(depth=2)), 2)
     self.assertEquals(len(cont._traverse(depth=3)), 4)
 def test_add_child_to_existing_path_with_error(self):
     cont = container.ObjectContainer("test")
     obj = container.ObjectContainer("test")
     cont._add_to_path("com.nokia", obj)
     com = container.ObjectContainer("com")
     try:
         cont._add(com, policy=container.ERROR)
         self.fail("Adding an existing object succeeds with ERROR policy")
     except exceptions.AlreadyExists, e:
         pass
 def test_add_child_and_remove_all(self):
     cont = container.ObjectContainer("test")
     obj = container.ObjectContainer("test")
     cont._add_to_path("com.nokia", obj)
     cont._add_to_path("com.nokia", container.ObjectContainer("foo"))
     cont._add_to_path("com", container.ObjectContainer("bar"))
     self.assertEquals(len(cont._traverse()), 5)
     for item in cont._list():
         cont._remove(item)
     self.assertEquals(len(cont._list()), 0)
 def test_add_children_head_recurse_with_function(self):
     cont = container.ObjectContainer("default")
     cont._add_to_path("com.nokia", container.ObjectContainer("test"))
     cont._add_to_path("com.nokia", container.ObjectContainer("foo"))
     cont._add_to_path("com", container.ObjectContainer("bar"))
     ret = cont._head_recurse(graph)
     self.assertEquals(ret, [
         'nokia -> test', 'nokia -> foo', 'com -> nokia', 'com -> bar',
         'default -> com'
     ])
 def test_error(self):
     cont = container.ObjectContainer("test")
     t1 = container.ObjectContainer('test')
     cont._error(t1)
     self.assertEquals(cont.test, t1)
     t2 = container.ObjectContainer('test')
     try:
         cont._error(t2)
         self.fail("adding same with error succeeds")
     except exceptions.AlreadyExists, e:
         pass
 def test_add_child_and_access_via_index(self):
     cont = container.ObjectContainer("test")
     cont._add(container.ObjectContainer("dummy"), container.APPEND)
     d1 = cont._get('dummy')
     d2 = cont._get('dummy[0]')
     self.assertEquals(d1, d2)
     try:
         cont._get('dummy[1]')
         self.fail("getting dummy")
     except exceptions.NotFound:
         pass
 def test_add_child_to_existing_path_append_and_remove(self):
     cont = container.ObjectContainer("test")
     obj = container.ObjectContainer("test")
     cont._add_to_path("com.nokia", obj)
     com = container.ObjectContainer("com")
     cont._add(com, policy=container.APPEND)
     self.assertEquals(len(cont._get('com')), 2)
     self.assertEquals(cont._get('com')[1], com)
     self.assertEquals(cont._list(), ['com'])
     cont._remove('com')
     self.assertEquals(cont._list(), [])
 def test_add_internal_child(self):
     cont = container.ObjectContainer("root")
     obj = container.ObjectContainer("?test")
     cont._add(obj)
     cont._add(container.ObjectContainer("foo"))
     cont._add(container.ObjectContainer("bar"))
     self.assertEquals(cont._list(), ['foo', 'bar'])
     self.assertEquals(cont._get('?test'), obj)
     self.assertEquals(cont._list(), ['foo', 'bar'])
     cont._remove('?test')
     self.assertRaises(exceptions.NotFound, cont._get, '?test')
     self.assertEquals(cont._list(), ['foo', 'bar'])
 def test_add_child_to_path_and_replace_parent(self):
     cont = container.ObjectContainer("test")
     obj = container.ObjectContainer("test")
     cont._add_to_path("com.nokia", obj)
     cont._add_to_path("com", container.ObjectContainer("bar"))
     com = container.ObjectContainer("com")
     cont._add(com)
     self.assertEquals(cont._list(), ['com'])
     self.assertEquals(cont.com._list(), ['nokia', 'bar'])
     self.assertEquals(cont.com.bar._parent, com)
     self.assertEquals(cont.com.nokia._list(), ['test'])
     self.assertEquals(cont.com.nokia.test, obj)
 def test_add_child_to_existing_path_append_and_objects(self):
     cont = container.ObjectContainer("test")
     cont._add(container.ObjectContainer("dummy"), container.APPEND)
     cont._add(container.ObjectContainer("child"), container.APPEND)
     cont._add(container.ObjectContainer("child"), container.APPEND)
     cont._add(container.ObjectContainer("child"), container.APPEND)
     self.assertEquals(len(cont._objects()), 4)
     cont._remove('child[1]')
     self.assertEquals(len(cont._objects()), 3)
     cont._remove('child[0]')
     cont._remove('child[0]')
     self.assertEquals(len(cont._objects()), 1)
 def test_add_child_to_existing_path_append(self):
     cont = container.ObjectContainer("test")
     obj = container.ObjectContainer("test")
     cont._add_to_path("com.nokia", obj)
     cont._add_to_path("com.nokia", container.ObjectContainer("test"),
                       container.APPEND)
     com = container.ObjectContainer("com")
     cont._add(com, policy=container.APPEND)
     self.assertEquals(len(cont._get('com')), 2)
     self.assertEquals(cont._get('com')[1], com)
     self.assertEquals(len(cont._objects()), 2)
     self.assertEquals(len(cont.com[0].nokia.test), 2)
     self.assertEquals(len(cont._get('com[0].nokia.test')), 2)
     self.assertEquals([e._name for e in cont._traverse()],
                       ['com', 'nokia', 'test', 'test', 'com'])
 def test_add_children_and_find_parent(self):
     cont = container.ObjectContainer("default", container=True)
     cont._add(container.ObjectContainer("com", housut="test"))
     cont._add_to_path("com.nokia", container.ObjectContainer("test"))
     cont._add_to_path("com.nokia", container.ObjectContainer("foo"))
     cont._add_to_path("com", container.ObjectContainer("bar"))
     child = cont._get('com.nokia.test')
     self.assertEquals(child._find_parent()._name, 'nokia')
     self.assertEquals(child._find_parent(container=True)._name, 'default')
     self.assertEquals(child._find_parent(housut="test")._name, 'com')
     self.assertEquals(
         child._find_parent(__class__=container.ObjectContainer)._name,
         'nokia')
     self.assertEquals(
         child._find_parent(type=container.ObjectContainer)._name, 'nokia')
 def test_add_incorrect_type(self):
     cont = container.ObjectContainer()
     try:
         cont._add(container.DataContainer())
         self.fail("Adding incorrect class type to container succeeds?")
     except exceptions.IncorrectClassError, e:
         pass
 def test_create_hieararchy_and_remove_child(self):
     root = container.ObjectContainer("test")
     root._add(container.ObjectContainer("child1"))
     root._add(container.ObjectContainer("child2"))
     root.child1._add(container.ObjectContainer("child11"))
     root.child1._add(container.ObjectContainer("child12"))
     root.child2._add(container.ObjectContainer("child21"))
     self.assertEquals(root._list_traverse(), [
         'child1', 'child1.child11', 'child1.child12', 'child2',
         'child2.child21'
     ])
     root.child2._remove('child21')
     self.assertEquals(
         root._list_traverse(),
         ['child1', 'child1.child11', 'child1.child12', 'child2'])
        def check(policy, expected):
            cont = container.ObjectContainer("root")
            cont._add(container.ObjectContainer("test1"))
            cont._add(container.ObjectContainer("foo"))
            cont._add(container.ObjectContainer("test2"))

            objs = [
                container.ObjectContainer("foo"),
                container.ObjectContainer("foo"),
                container.ObjectContainer("foo")
            ]
            for i, obj in enumerate(objs):
                obj.test_attr = i

            cont._add(objs, policy)

            actual = [(o._name, getattr(o, 'test_attr', None))
                      for o in cont._objects()]
            self.assertEquals(actual, expected)
 def test_prepend(self):
     cont = container.ObjectContainer("test")
     cont._prepend(container.ObjectContainer('test'))
     self.assertEquals(len(utils.get_list(cont.test)), 1)
     cont._prepend(container.ObjectContainer('test'))
     self.assertEquals(len(cont.test), 2)
 def test_create_load_container__add_data_unload(self):
     cont = container.LoadContainer(importpk)
     cont._add(container.ObjectContainer("Test"))
     self.assertEquals(len(cont._objects()), 1)
     cont._unload()
 def test_create_load_link_and_populate(self):
     cont = container.ObjectContainer("Test")
     link = container.LoadLink(importpk, container.LoadInterface())
     cont._add(link)
     link.populate()
     self.assertEquals(len(cont._objects()), 2)
 def test_create_object_container(self):
     cont = container.ObjectContainer("test")
     self.assertTrue(cont)