def testParents(self): class OtherDriver(Driver): _clusto_type = 'otherdriver' _driver_name = 'otherdriver' p1 = Pool('toppool') d1 = Pool('grandparent') d1a = Pool('othergrandparent') d1b = OtherDriver('anothergrandparent') d2 = Driver('parent') d3 = Driver('child') d1b.add_attr('foo', 'someval') p1.insert(d1a) d1b.insert(d2) d1a.insert(d2) d1.insert(d2) d2.insert(d3) self.assertEqual( sorted([d1, d1a, p1]), sorted(d3.parents(clusto_types=[Pool], search_parents=True))) self.assertEqual([d2], d3.parents()) self.assertEqual(['someval'], d3.attr_values('foo', merge_container_attrs=True))
def testParents(self): class OtherDriver(Driver): _clusto_type = 'otherdriver' _driver_name = 'otherdriver' p1 = Pool('toppool') d1 = Pool('grandparent') d1a = Pool('othergrandparent') d1b = OtherDriver('anothergrandparent') d2 = Driver('parent') d3 = Driver('child') d1b.add_attr('foo', 'someval') p1.insert(d1a) d1b.insert(d2) d1a.insert(d2) d1.insert(d2) d2.insert(d3) self.assertEqual(sorted([d1, d1a, p1]), sorted(d3.parents(clusto_types=[Pool], search_parents=True))) self.assertEqual([d2], d3.parents()) self.assertEqual(['someval'], d3.attr_values('foo', merge_container_attrs=True))
def testContents(self): d1 = Driver('d1') d2 = Driver('d2') d1.insert(d2) self.assertEqual(d1.contents(), [d2])
def testMultipleInserts(self): d1 = Driver('d1') d2 = Driver('d2') d3 = Driver('d3') d1.insert(d2) self.assertRaises(TypeError, d3.insert, d2)
def testInsert(self): d1 = Driver('d1') d2 = Driver('d2') d1.insert(d2) clusto.flush() d = clusto.get_by_name('d1') self.assertEqual(d.attr_items(ignore_hidden=False), [(('_contains', 0, None), d2)])
def testRemove(self): d1 = Driver('d1') d2 = Driver('d2') d1.insert(d2) clusto.flush() d = clusto.get_by_name('d1') d.remove(d2) clusto.flush() self.assertEqual(d.attr_items(ignore_hidden=False), [])
def testNumberedInserts(self): d1 = Driver('d1') d1.insert(Driver('d2')) d1.insert(Driver('d3')) d1.insert(Driver('d4')) d1.insert(Driver('d5')) d1.insert(Driver('d6')) self.assertEqual(range(5), [x.number for x in d1.attrs(ignore_hidden=False)])