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)