def test_getCommand(self): iq = self.iq cmd = Command(node='test', action='execute') iq.addChild(cmd.toElement()) cmd2 = command.getCommand(iq) self.assertEquals(cmd2.toElement().toXml(), cmd.toElement().toXml())
def test_can_process(self): node = StartHandler('nodeTest', self.stateMngr, self.pageMngr) iq = self.iq cmd = Command(node='nodeTest', action='next') cmd_el = cmd.toElement() del cmd_el['sessionid'] iq.addChild(cmd_el) self.assertTrue(node.can_process(iq))
def setUp(self): c = Command(node='input', action='execute') self.cmd_in = self.iq() self.cmd_in.addChild(c.toElement()) self.getRegistered = Mock(side_effect=utils.good_side_effect(set(['master.local', 'mini.local']))) self.getComponents = Mock(side_effect=utils.good_side_effect(collab.COLLAB_COMPONENTS)) psnodes = disco.DiscoItems() [psnodes.append(disco.DiscoItem(testJid, nid)) for nid in set(['master.local', 'mini.local'])] self.getPSNodes = Mock(side_effect=utils.good_side_effect(psnodes)) self.people = ['*****@*****.**', '*****@*****.**'] jids = disco.DiscoItems() [jids.append(disco.DiscoItem(jid.JID(j))) for j in self.people] self.getAdmins = self.getPubs = self.getSubs = Mock(side_effect=utils.good_side_effect(jids))
def test_parse_iq(self): node = NodeHandler('nodeTest', self.stateMngr, self.pageMngr) iq = self.iq cmd = Command(node='nodeTest', action='next') form = data_form.Form( formType='submit', formNamespace=collab.COLLAB_NS ) form.addField(data_form.Field( var = 'machine', value = 'one' )) cmd.set_form(form) iq.addChild(cmd.toElement()) vals = node._parse_iq(iq) self.assertEquals(vals['machine'], 'one')
def test_parse_iq_badForm(self): node = NodeHandler('nodeTest', self.stateMngr, self.pageMngr) iq = self.iq cmd = Command(node='nodeTest', action='next') form = data_form.Form( formType='submit', formNamespace='wrong' ) form.addField(data_form.Field( var = 'machine', value = 'one' )) form.getValues = Mock(return_value=dict({'machine': 'one'})) cmd.set_form(form) iq.addChild(cmd.toElement()) def raises(): return node._parse_iq(iq) self.assertRaises(ValueError, raises) self.assertFalse(form.getValues.called)
def test_toElement(self): c = Command('testNode', status='completed', sessionid='sessionid1') n1 = Note('a test note') c.addNote(n1) a = Actions() a.setDefault('next') c.set_actions(a) form = data_form.Form( formType='form', title=u'Unregister a machine', instructions=[u'Please select the machine to be unregistered'], formNamespace=collab.COLLAB_NS ) form.addField(data_form.Field( var = 'machine', label = u'Machine', desc = u'Please select a machine domain name', required = True, fieldType='list-multi', options = [data_form.Option(m) for m in ['one', 'two', 'three']] )) c.set_form(form) el = Element((collab.COMMAND_NS, 'command')) el['node'] = 'testNode' el['sessionid'] = 'sessionid1' el['status'] = 'completed' el.addChild(a.toElement()) el.addChild(form.toElement()) el.addChild(n1.toElement()) self.assertEquals(c.toElement().toXml(), el.toXml())
def test_copyCommand(self): cmd = Command(node='test', action='execute') cmd2 = command.copyCommand(cmd) self.assertEquals(cmd2.toElement().toXml(), cmd.toElement().toXml())
def test_copyCommandElement(self): cmd = Command(node='test', action='execute') cmd_el = cmd.toElement() cmd2 = command.copyCommandElement(cmd_el) self.assertEquals(cmd2['node'], cmd_el['node']) self.assertEquals(cmd2['sessionid'], cmd_el['sessionid'])
def test_hasCommand(self): iq = self.iq cmd = Command(node='test', action='execute') iq.addChild(cmd.toElement()) self.assertTrue(command.hasCommand(iq))
class PageManagerTests(unittest.TestCase): timeout = 2 def setUp(self): def iq(): iq = Element((None, "iq")) iq["type"] = "set" iq["to"] = "*****@*****.**" iq["from"] = "*****@*****.**" iq["id"] = "id1" return iq def cancel(): cmd = Element((collab.COMMAND_NS, "command")) cmd["node"] = "collabs_nodes_add" cmd["sessionid"] = "sessionid1" cmd["action"] = "cancel" return cmd def prev(): cmd = Element((collab.COMMAND_NS, "command")) cmd["node"] = "collabs_nodes_add" cmd["sessionid"] = "sessionid1" cmd["action"] = "prev" return cmd def nex(): cmd = Element((collab.COMMAND_NS, "command")) cmd["node"] = "collabs_nodes_add" cmd["sessionid"] = "sessionid1" cmd["action"] = "execute" return cmd def nex_start(): cmd = Element((collab.COMMAND_NS, "command")) cmd["node"] = "collabs_nodes_add" cmd["action"] = "execute" return cmd def result_iq(): iq = Element((None, "iq")) iq["type"] = "result" iq["to"] = "*****@*****.**" iq["from"] = "*****@*****.**" iq["id"] = "id1" return iq self.cancel_iq = iq() self.cancel_iq.addChild(cancel()) self.prev_iq = iq() self.prev_iq.addChild(prev()) self.cmd = Command(node="collabs_nodes_add", status="executing", sessionid="sessionid1") actions = Actions() actions.setDefault("next") self.cmd.set_actions(actions) form = data_form.Form( formType="form", title=u"Unregister a machine", instructions=[u"Please select the machine to be unregistered"], formNamespace=collab.COLLAB_NS, ) form.addField( data_form.Field( var="machine", label=u"Machine", desc=u"Please select a machine domain name", required=True, fieldType="list-multi", options=[data_form.Option(m) for m in set(["master.local", "mini.local"])], ) ) self.cmd.set_form(form) self.next_iq = iq() cmd = self.next_iq.addChild(nex()) x = cmd.addElement("x", defaultUri=data_form.NS_X_DATA) x["type"] = "submit" field = x.addElement("field") field["var"] = "service" field.addElement("value", content="something") self.next_start_iq = iq() self.next_start_iq.addChild(nex_start()) self.state = dict({"one": 1}) def tearDown(self): pass def test_PageManager_add_page(self): mngr = PageManager() p = CommandPage(self.cmd) mngr.add_page(p) self.assertEquals(len(mngr.pages), 1) self.assertEquals(mngr.pages[0], p) @defer.inlineCallbacks def test_PageManager_cancel_page(self): mngr = PageManager() mngr.index = 2 iq = yield mngr.cancel_page(self.cancel_iq, self.state) self.assertEquals(mngr.index, 0) self.assertEquals(iq["to"], "*****@*****.**") self.assertEquals(iq["from"], "*****@*****.**") self.assertEquals(iq["id"], "id1") self.assertEquals(iq["type"], "result") cmd = iq.firstChildElement() self.assertEquals(cmd.defaultUri, collab.COMMAND_NS) self.assertEquals(cmd["sessionid"], "sessionid1") self.assertEquals(cmd["node"], "collabs_nodes_add") self.assertEquals(cmd["status"], "canceled") @defer.inlineCallbacks def test_PageManager_prev_page(self): mngr = PageManager() mngr.add_page(CommandPage(self.cmd)) mngr.index = 1 iq = yield mngr.prev_page(self.prev_iq, self.state) self.assertEquals(mngr.index, 0) self.assertEquals(iq["to"], "*****@*****.**") self.assertEquals(iq["from"], "*****@*****.**") self.assertEquals(iq["id"], "id1") self.assertEquals(iq["type"], "result") cmd = iq.firstChildElement() self.assertEquals(cmd.toXml(), self.cmd.toElement().toXml()) @defer.inlineCallbacks def test_PageManager_prev_page_badIndex(self): mngr = PageManager() mngr.add_page(CommandPage(self.cmd)) mngr.index = 0 try: yield mngr.prev_page(self.prev_iq, self.state) except PageManagerError as e: pass @defer.inlineCallbacks def test_PageManager_prev_page_noPage(self): mngr = PageManager() mngr.index = 1 try: yield mngr.prev_page(self.prev_iq, self.state) except PageManagerError as e: pass @defer.inlineCallbacks def test_PageManager_next_page(self): mngr = PageManager() mngr.add_page(CommandPage(self.cmd)) mngr.index = 0 iq = yield mngr.next_page(self.next_iq, self.state) self.assertEquals(mngr.index, 1) self.assertEquals(iq["to"], "*****@*****.**") self.assertEquals(iq["from"], "*****@*****.**") self.assertEquals(iq["id"], "id1") self.assertEquals(iq["type"], "result") cmd = iq.firstChildElement() self.assertEquals(cmd.toXml(), self.cmd.toElement().toXml()) @defer.inlineCallbacks def test_PageManager_next_page_start(self): mngr = PageManager() mngr.add_page(CommandPage(self.cmd)) mngr.index = 0 iq = yield mngr.next_page(self.next_start_iq, self.state) self.assertEquals(mngr.index, 1) self.assertEquals(iq["to"], "*****@*****.**") self.assertEquals(iq["from"], "*****@*****.**") self.assertEquals(iq["id"], "id1") self.assertEquals(iq["type"], "result") cmd = iq.firstChildElement() self.assertEquals(cmd.toXml(), self.cmd.toElement().toXml()) @defer.inlineCallbacks def test_PageManager_next_page_badIndex(self): mngr = PageManager() mngr.add_page(CommandPage(self.cmd)) mngr.index = 1 try: yield mngr.next_page(self.next_iq, self.state) except PageManagerError as e: pass @defer.inlineCallbacks def test_PageManager_next_page_noPage(self): mngr = PageManager() mngr.index = 0 try: yield mngr.next_page(self.next_iq, self.state) except PageManagerError as e: pass @defer.inlineCallbacks def test_PageManager_ready(self): mngr = PageManager() mngr.add_page(CommandPage(self.cmd)) mngr.index = 0 self.assertFalse(mngr.ready()) iq = yield mngr.next_page(self.next_start_iq, self.state) self.assertTrue(mngr.ready())
def test_can_process_wrongNode(self): node = StartHandler('nodeTest', self.stateMngr, self.pageMngr) iq = self.iq cmd = Command(node='wrongNode', action='cancel') iq.addChild(cmd.toElement()) self.assertFalse(node.can_process(iq))
def test_can_process_hasSessionId(self): node = StartHandler('nodeTest', self.stateMngr, self.pageMngr) iq = self.iq cmd = Command(node='nodeTest', action='prev') iq.addChild(cmd.toElement()) self.assertFalse(node.can_process(iq))
def test_can_process(self): node = NodeHandler('nodeTest', self.stateMngr, self.pageMngr) iq = self.iq cmd = Command(node='nodeTest', action='next') iq.addChild(cmd.toElement()) self.assertTrue(node.can_process(iq))
def test_can_process_notPrev(self): prev = PrevHandler('nodeTest', self.stateMngr, self.pageMngr) iq = self.iq cmd = Command(node='nodeTest', action='next') iq.addChild(cmd.toElement()) self.assertFalse(prev.can_process(iq))
def test_can_process(self): cancel = CancelHandler('nodeTest', self.stateMngr, self.pageMngr) iq = self.iq cmd = Command(node='nodeTest', action='cancel') iq.addChild(cmd.toElement()) self.assertTrue(cancel.can_process(iq))
def cmd(): c = Command(node='test', action='execute') return c.toElement()