Ejemplo n.º 1
0
 def testServers(self):
     """test ComponentGroup.servers()"""
     fs = FileSystem('comp')
     grp = ComponentGroup()
     grp.add(Component(fs, Server('foo1', ['foo1@tcp'])))
     grp.add(Component(fs, Server('foo2', ['foo2@tcp'])))
     self.assertEqual(str(grp.servers()), "foo[1-2]")
Ejemplo n.º 2
0
 def testLabels(self):
     """test ComponentGroup.labels()"""
     fs = FileSystem('comp')
     grp = ComponentGroup()
     comp = Component(fs, Server('foo1', ['foo1@tcp']))
     comp.TYPE = 'A'
     grp.add(comp)
     comp = Component(fs, Server('foo2', ['foo2@tcp']))
     comp.TYPE = 'B'
     grp.add(comp)
     self.assertEqual(str(grp.labels()), 'comp-A,comp-B')
Ejemplo n.º 3
0
 def testOr(self):
     """test ComponentGroup.__or__()"""
     fs = FileSystem('comp')
     grp1 = ComponentGroup()
     comp1 = Component(fs, Server('foo1', ['foo1@tcp']))
     grp1.add(comp1)
     grp2 = ComponentGroup()
     comp2 = Component(fs, Server('foo2', ['foo2@tcp']))
     grp2.add(comp2)
     merge = grp1|grp2
     self.assertEqual(len(merge), 2)
     self.assertTrue(comp1 in merge)
     self.assertTrue(comp2 in merge)
Ejemplo n.º 4
0
 def testUpdate(self):
     """test ComponentGroup.update()"""
     fs = FileSystem('comp')
     grp1 = ComponentGroup()
     comp1 = Component(fs, Server('foo1', ['foo1@tcp']))
     grp1.add(comp1)
     grp2 = ComponentGroup()
     comp2 = Component(fs, Server('foo2', ['foo2@tcp']))
     grp2.add(comp2)
     grp1.update(grp2)
     self.assertEqual(len(grp1), 2)
     self.assertTrue(comp1 in grp1)
     self.assertTrue(comp2 in grp1)
Ejemplo n.º 5
0
 def testManaged(self):
     """test ComponentGroup.managed()"""
     fs = FileSystem('comp')
     grp = ComponentGroup()
     comp1 = Component(fs, Server('foo1', ['foo1@tcp']), mode="external")
     grp.add(comp1)
     comp2 = Component(fs, Server('foo2', ['foo2@tcp']))
     grp.add(comp2)
     comp3 = Component(fs, Server('foo3', ['foo3@tcp']), enabled=False)
     grp.add(comp3)
     comp4 = Component(fs, Server('foo4', ['foo4@tcp']))
     grp.add(comp4)
     offgrp = grp.managed()
     self.assertEqual(len(offgrp), 2)
     self.assertTrue(comp2 in offgrp)
     self.assertTrue(comp4 in offgrp)
Ejemplo n.º 6
0
    def testGenericComponent(self):
        """test ComponentGroup simple methods"""
        fs = FileSystem('comp')
        grp = ComponentGroup()
        self.assertEqual(len(grp), 0)
        comp = Component(fs, Server('foo', ['foo@tcp']))
        comp.TYPE = 'A'

        # add()
        grp.add(comp)
        # __len__
        self.assertEqual(len(grp), 1)
        # __str__
        self.assertEqual(str(grp), 'comp-A')
        # __getitem__
        self.assertEqual(grp[comp.uniqueid()], comp)
        # __contains__
        self.assertTrue(comp in grp)
        # __iter__
        self.assertEqual(list(iter(grp)), [ comp ])
        # Could not add() twice the same component
        try:
            grp.add(comp)
        except KeyError as error:
            txt = "'A component with id comp-A-foo@tcp already exists.'"
            self.assertEqual(str(error), txt)
Ejemplo n.º 7
0
 def test_managed_active(self):
     """test ComponentGroup.managed() with active option"""
     fs = FileSystem('active')
     grp = ComponentGroup()
     srv = Server('foo1', ['foo1@tcp'])
     comp1 = Component(fs, srv)
     comp1.TYPE = 'A'
     grp.add(comp1)
     comp2 = Component(fs, srv, active='no')
     comp2.TYPE = 'B'
     grp.add(comp2)
     comp3 = Component(fs, srv, active='nocreate')
     comp3.TYPE = 'C'
     grp.add(comp3)
     comp4 = Component(fs, srv, active='no', mode='external')
     comp4.TYPE = 'D'
     grp.add(comp4)
     self.assertEqual(str(grp.managed()), 'active-A,active-C')
     self.assertEqual(str(grp.managed(inactive=True)),
                      'active-A,active-B,active-C,active-D')
Ejemplo n.º 8
0
 def testGroupBy(self):
     """test ComponentGroup.groupby()"""
     fs = FileSystem('comp')
     grp = ComponentGroup()
     comp1 = Component(fs, Server('foo1', ['foo1@tcp']), mode="external")
     grp.add(comp1)
     comp2 = Component(fs, Server('foo2', ['foo2@tcp']))
     grp.add(comp2)
     comp3 = Component(fs, Server('foo3', ['foo3@tcp']), mode="external")
     grp.add(comp3)
     comp4 = Component(fs, Server('foo4', ['foo4@tcp']))
     grp.add(comp4)
     results = [[mode, list(comps)] for mode, comps in grp.groupby(attr='_mode')]
     self.assertEqual(len(results), 2)
     self.assertEqual(results[0][0], "external")
     self.assertTrue(comp1 in results[0][1])
     self.assertTrue(comp3 in results[0][1])
     self.assertEqual(results[1][0], "managed")
     self.assertTrue(comp2 in results[1][1])
     self.assertTrue(comp4 in results[1][1])
Ejemplo n.º 9
0
 def testFilterSupports(self):
     """test ComponentGroup.filter(supports and key)"""
     fs = FileSystem('comp')
     grp = ComponentGroup()
     comp1 = Component(fs, Server('foo1', ['foo1@tcp']))
     comp1.state = MOUNTED
     grp.add(comp1)
     comp2 = Component(fs, Server('foo2', ['foo2@tcp']))
     comp2.state = OFFLINE
     grp.add(comp2)
     comp3 = Component(fs, Server('foo3', ['foo3@tcp']))
     comp3.state = MOUNTED
     grp.add(comp3)
     comp4 = Component(fs, Server('foo4', ['foo4@tcp']))
     comp4.state = OFFLINE
     grp.add(comp4)
     offgrp = grp.filter(supports='is_external', key=lambda comp: comp.state == OFFLINE)
     self.assertEqual(len(offgrp), 2)
     self.assertTrue(comp2 in offgrp)
     self.assertTrue(comp4 in offgrp)
Ejemplo n.º 10
0
 def testGroupByServer(self):
     """test ComponentGroup.groupbyserver()"""
     fs = FileSystem('comp')
     grp = ComponentGroup()
     srv1 = Server('foo1', ['foo1@tcp'])
     srv2 = Server('foo2', ['foo2@tcp'])
     comp1 = Component(fs, srv1)
     comp1.TYPE = 'A'
     grp.add(comp1)
     comp2 = Component(fs, srv2)
     comp2.TYPE = 'B'
     grp.add(comp2)
     comp3 = Component(fs, srv1)
     comp3.TYPE = 'C'
     grp.add(comp3)
     comp4 = Component(fs, srv2)
     comp4.TYPE = 'D'
     grp.add(comp4)
     key = lambda c: c.TYPE
     results = [[srv, sorted(comps, key=key)] for srv, comps in grp.groupbyserver()]
     self.assertEqual(len(results), 2)
     self.assertTrue([srv1, [comp1, comp3]] in results)
     self.assertTrue([srv2, [comp2, comp4]] in results)