def testManagerLEDs(self): """ test the Ledon, ledoff and ledstatus option parameter """ opts = Options() # default options object opts.cluster = TEST_CLUSTER opts.node = TEST_NODE opts.ledon = True Manager(opts).doit() # TODO: get led status and test if it's on opts.ledon = False opts.ledoff = True Manager(opts).doit()
def testdoitOutput(self): """Test the consistency of the output of manager.doit""" opts = Options() # default options object opts.cluster = TEST_CLUSTER opts.quattor_nodes = True opts.ledon = True manager = Manager(opts) manager.nodes = CompositeNode(timeout=1) # create a fake node testnode = TestNode('node111', 'localhost', None) # overwrite it's testcommand to be sure it times out testnode.ledoncommand = Command('sleep 3', timeout=1) manager.nodes.add(testnode) # make sure this works for multiple nodes testnode2 = TestNode('node112', 'localhost', None) # overwrite it's testcommand to be sure it times out testnode2.ledoncommand = Command('sleep 3', timeout=1) manager.nodes.add(testnode2) # parse actions again so they get applied on the new node manager.parseActions() out = manager.doit() # make sure this output is of a format we can handle errors = [] for i in out: if len(i) > 1 and len(i[1]) > 0: for j in i[1]: # second element is an array of [outputs of commands,errors] self.assertEquals(j[1][0], None) if j[1][1]: self.assertEquals(j[1][1], 'command timed out') errors.append(i[0]) # actuall node should be in output, not just the name, because this is also used for printstatussee self.assertTrue(testnode in errors) self.assertTrue(testnode2 in errors)