def testPickupProcess(self): q = self.create_a_job(getsession()) e = ExecuteActionFactory() act = e.buildProtocol(None) messages = [] act.transport = fake_transport() act.transport.write = messages.append act.dataReceived(formatmessage(q[0].socket_serialize())) act.connectionLost("Shit got all f****d up") self.assert_(len(current_processes["running"]) == 0, current_processes["running"]) self.assert_(len(current_processes["dropped"]) == 1, current_processes["dropped"]) e2 = ExecuteActionFactory() recon = e2.buildProtocol(None) messages2 = [] recon.transport = fake_transport() recon.transport.write = messages2.append recon.dataReceived(formatmessage([RECONNECTKEY, q[0].JOBID])) self.assert_(len(current_processes["running"]) == 1, current_processes["running"]) self.assert_(len(current_processes["dropped"]) == 0, current_processes["dropped"]) while len(messages2) == 1: recon.cancel() recon.check_action() time.sleep(.1) twisted.internet.base.DelayedCall.debug = True
def testKillProcessNotFound(self): q = self.create_a_job(getsession()) e = ExecuteActionFactory() act = e.buildProtocol(None) act.transport = fake_transport() act_msg = [] act.transport.write = act_msg.append act.dataReceived(formatmessage(q[0].socket_serialize())) e2 = ExecuteActionFactory() curr = e2.buildProtocol(None) messages = [] curr.transport = fake_transport() curr.transport.write = messages.append while len(messages) == 1: act.cancel() act.check_action() == None time.sleep(.1) curr.message = "" curr.dataReceived(formatmessage([KILLPROCKEY, q[0].JOBID])) self.assert_(messages[0] == """29 ["KILLPROCESS", "terminated"]""", messages[0]) act.check_action() act.cancel() curr.cancel()
def testCurrentProcessesMessage(self): q = self.create_a_job(getsession()) e = ExecuteActionFactory() action_messages = [] act = e.buildProtocol(None) act.transport = fake_transport() act.transport.write = action_messages.append act.dataReceived(formatmessage(q[0].socket_serialize())) e2 = ExecuteActionFactory() curr = e2.buildProtocol(None) messages = [] curr.transport = fake_transport() curr.transport.write = messages.append curr.dataReceived(formatmessage([CURRPROCKEY, {}])) self.assert_(messages[0] == """25 ["CURRENTPROCESSES", [1]]""", messages[0]) while len(action_messages) == 1: act.cancel() act.check_action() == None time.sleep(.1) curr = e2.buildProtocol(None) curr.message = "" messages = [] curr.transport = fake_transport() curr.transport.write = messages.append curr.dataReceived(formatmessage([CURRPROCKEY, {}])) self.assert_(messages[0] == """24 ["CURRENTPROCESSES", []]""", messages[0]) act.cancel() curr.cancel()
def testDroppedProcess(self): q = self.create_a_job(getsession()) e = ExecuteActionFactory() act = e.buildProtocol(None) messages = [] act.transport = fake_transport() act.transport.write = messages.append act.dataReceived(formatmessage(q[0].socket_serialize())) e.clientConnectionLost(None, "Shit got all f****d up") self.assert_(len(current_processes["running"]) == 0, current_processes["running"]) self.assert_(len(current_processes["dropped"]) == 1, current_processes["dropped"]) while len(messages) == 1: act.cancel() act.check_action() time.sleep(.1)
def testKillProcess(self): q = self.create_a_job(getsession()) e = ExecuteActionFactory() act = e.buildProtocol(None) act.transport = fake_transport() act.dataReceived(formatmessage(q[0].socket_serialize())) e2 = ExecuteActionFactory() curr = e2.buildProtocol(None) messages = [] curr.transport = fake_transport() curr.transport.write = messages.append curr.dataReceived(formatmessage([KILLPROCKEY, 40])) self.assert_(messages[0] == """50 ["KILLPROCESS", "No running process with that ID"]""", messages[0]) act.cancel() curr.cancel()
def testFileDeps(self): e = ExecuteActionFactory() f = filedep() f.FILEID = 10 f.ACTIONID = "some crappy action" f.SERVERID = "some bullshit server" f.FILENAME = FAKE_FILEDEP f.TYPE = 0 l = [] eprot = e.buildProtocol(None) eprot.transport = fake_transport() eprot.transport.write = l.append eprot.dataReceived(formatmessage(f.socket_serialize())) self.assert_(len(l) == 1) ret = parsemessagefromstr(l[0])[0] self.assert_(str(ret[0][0]) == FILEDEPKEY) self.assert_(ret[0][1] == True or ret[1] == False)