コード例 #1
0
 def test_bind_no_resource(self):
     handler = AuthorizedEventHandler()
     handlers = [ResourceBindingHandler(), handler]
     processor = StanzaProcessor()
     processor.setup_stanza_handlers(handlers, "post-auth")
     self.stream = StreamBase(u"jabber:client", processor, handlers)
     processor.uplink = self.stream
     self.stream.me = JID("[email protected]")
     self.start_transport([handler])
     self.stream.initiate(self.transport)
     self.connect_transport()
     self.server.write(C2S_SERVER_STREAM_HEAD)
     self.wait_short(1)
     self.server.write(BIND_FEATURES)
     req_id = self.wait(
         1, expect=re.compile(br".*<iq[^>]*id=[\"']([^\"']*)[\"']"))
     self.assertIsNotNone(req_id)
     req_id = req_id.decode("utf-8")
     self.server.write(
         BIND_GENERATED_RESPONSE.format(req_id).encode("utf-8"))
     self.wait()
     self.assertFalse(self.stream.is_connected())
     event_classes = [e.__class__ for e in handler.events_received]
     self.assertEqual(event_classes, [
         ConnectingEvent, ConnectedEvent, StreamConnectedEvent,
         GotFeaturesEvent, BindingResourceEvent, AuthorizedEvent,
         DisconnectedEvent
     ])
コード例 #2
0
 def test_bind_resource(self):
     handler = EventRecorder()
     handlers = [ResourceBindingHandler(), handler]
     processor = StanzaProcessor()
     self.start_transport(handlers)
     self.stream = StreamBase(u"jabber:client", processor, handlers)
     processor.uplink = self.stream
     self.stream.receive(self.transport, self.addr[0])
     self.stream.set_peer_authenticated(JID("[email protected]"))
     processor.setup_stanza_handlers(handlers, "post-auth")
     self.client.write(C2S_CLIENT_STREAM_HEAD)
     features = self.wait(
         expect=re.compile(br".*<stream:features>"
                           br"(.*<bind.*urn:ietf:params:xml:ns:xmpp-bind.*)"
                           br"</stream:features>"))
     self.assertIsNotNone(features)
     self.client.write(BIND_PROVIDED_REQUEST)
     resource = self.wait(expect=re.compile(
         br".*<iq.*id=(?:\"42\"|'42').*>"
         br"<bind.*<jid>[email protected]/(.*)</jid>.*</bind>"))
     self.assertEqual(resource, b"Provided")
     self.client.write(STREAM_TAIL)
     self.client.disconnect()
     self.wait()
     event_classes = [e.__class__ for e in handler.events_received]
     self.assertEqual(event_classes, [
         AuthenticatedEvent, StreamConnectedEvent, AuthorizedEvent,
         DisconnectedEvent
     ])
コード例 #3
0
ファイル: stanzaprocessor.py プロジェクト: zeeying/pyxmpp2
 def setUp(self):
     self.handlers_called = []
     self.stanzas_sent = []
     self.proc = StanzaProcessor()
     self.proc.me = JID("[email protected]/xx")
     self.proc.peer = JID("[email protected]/yy")
     self.proc.send = self.send
     self.proc.initiator = True