def test_disconnect(self): self.assertEqual(commands.disconnect(), StompFrame(StompSpec.DISCONNECT)) self.assertEqual( commands.disconnect(receipt='4711'), StompFrame(StompSpec.DISCONNECT, {StompSpec.RECEIPT_HEADER: '4711'}))
def test_disconnect(self): self.assertEquals(commands.disconnect(), StompFrame(StompSpec.DISCONNECT)) self.assertEquals( commands.disconnect(receipt='4711'), StompFrame(StompSpec.DISCONNECT, {StompSpec.RECEIPT_HEADER: '4711'})) self.assertRaises(StompProtocolError, commands.disconnect, receipt=4711)
def test_frames_with_optional_newlines_succeeds(self): parser = StompParser() disconnect = commands.disconnect() frame = b'\n' + binaryType(disconnect) + b'\n' parser.add(2 * frame) for _ in range(2): self.assertEqual(parser.get(), disconnect) self.assertIsNone(parser.get())
def test_frames_with_optional_newlines_succeeds(self): parser = StompParser() disconnect = commands.disconnect() frame = '\n%s\n' % disconnect parser.add(2 * frame) for _ in xrange(2): self.assertEqual(parser.get(), disconnect) self.assertEqual(parser.get(), None)
def test_frames_with_heart_beats_succeeds(self): parser = StompParser(version=StompSpec.VERSION_1_1) disconnect = commands.disconnect() frame = b'\n' + binaryType(disconnect) + b'\n' parser.add(2 * frame) frames = [] while parser.canRead(): frames.append(parser.get()) self.assertEqual(frames, [StompHeartBeat(), disconnect, StompHeartBeat(), StompHeartBeat(), disconnect, StompHeartBeat()]) self.assertIsNone(parser.get())
def test_frames_with_heart_beats_succeeds(self): parser = StompParser(version=StompSpec.VERSION_1_1) disconnect = commands.disconnect() frame = b'\n' + binaryType(disconnect) + b'\n' parser.add(2 * frame) frames = [] while parser.canRead(): frames.append(parser.get()) self.assertEqual(frames, [ StompHeartBeat(), disconnect, StompHeartBeat(), StompHeartBeat(), disconnect, StompHeartBeat() ]) self.assertIsNone(parser.get())
def test_frames_with_heart_beats_succeeds(self): parser = StompParser(version=StompSpec.VERSION_1_1) disconnect = commands.disconnect() frame = '\n%s\n' % disconnect parser.add(2 * frame) frames = [] while parser.canRead(): frames.append(parser.get()) self.assertEquals(frames, [StompHeartBeat(), disconnect, StompHeartBeat(), StompHeartBeat(), disconnect, StompHeartBeat()]) #self.assert frames #StompFrame(command='DISCONNECT', headers={}, body=''), StompFrame(command='DISCONNECT', headers={}, body='')] #self.assertEqual(parser.get(), commands.disconnect()) self.assertEqual(parser.get(), None)
def test_session_disconnect(self): session = StompSession(StompSpec.VERSION_1_1) session.connect(login='', passcode='') session.connected(StompFrame(StompSpec.CONNECTED, {StompSpec.SESSION_HEADER: 'hi'})) headers = {StompSpec.ID_HEADER: 4711} session.subscribe('bla', headers) frame = session.disconnect(receipt='4711') self.assertEqual(frame, commands.disconnect(receipt='4711')) self.assertEqual(session.state, session.DISCONNECTING) session.close(flush=False) self.assertEqual(session.state, session.DISCONNECTED) self.assertEqual(list(session.replay()), [('bla', headers, None, None)]) self.assertEqual(list(session.replay()), []) self.assertRaises(StompProtocolError, session.disconnect)
def test_session_disconnect(self): session = StompSession(StompSpec.VERSION_1_1) session.connect(login='', passcode='') session.connected( StompFrame(StompSpec.CONNECTED, {StompSpec.SESSION_HEADER: 'hi'})) headers = {StompSpec.ID_HEADER: 4711} session.subscribe('bla', headers) frame = session.disconnect(receipt='4711') self.assertEqual(frame, commands.disconnect(receipt='4711')) self.assertEqual(session.state, session.DISCONNECTING) session.close(flush=False) self.assertEqual(session.state, session.DISCONNECTED) self.assertEqual(list(session.replay()), [('bla', headers, None, None)]) self.assertEqual(list(session.replay()), []) self.assertRaises(StompProtocolError, session.disconnect)
def test_body_allowed_commands(self): head = str(commands.disconnect()).rstrip(StompSpec.FRAME_DELIMITER) for (version, bodyAllowed) in [(StompSpec.VERSION_1_0, True), (StompSpec.VERSION_1_1, False), (StompSpec.VERSION_1_2, False)]: parser = StompParser(version) parser.add(head) parser.add('ouch!') try: parser.add(StompSpec.FRAME_DELIMITER) except StompFrameError: if bodyAllowed: raise except: raise else: if not bodyAllowed: raise
def test_body_allowed_commands(self): head = binaryType(commands.disconnect()).rstrip(StompSpec.FRAME_DELIMITER.encode()) for (version, bodyAllowed) in [ (StompSpec.VERSION_1_0, True), (StompSpec.VERSION_1_1, False), (StompSpec.VERSION_1_2, False) ]: parser = StompParser(version) parser.add(head) parser.add(b'ouch!') try: parser.add(StompSpec.FRAME_DELIMITER.encode()) except StompFrameError: if bodyAllowed: raise except: raise else: if not bodyAllowed: raise
def test_disconnect(self): self.assertEquals(commands.disconnect(), StompFrame(StompSpec.DISCONNECT)) self.assertEquals(commands.disconnect(receipt='4711'), StompFrame(StompSpec.DISCONNECT, {StompSpec.RECEIPT_HEADER: '4711'})) self.assertRaises(StompProtocolError, commands.disconnect, receipt=4711)
def test_session_connect(self): session = StompSession(StompSpec.VERSION_1_0, check=False) self.assertEqual(session.version, StompSpec.VERSION_1_0) for attribute in (session.server, session.id, session.lastSent, session.lastReceived): self.assertEqual(attribute, None) for attribute in (session.clientHeartBeat, session.serverHeartBeat): self.assertEqual(attribute, 0) self.assertEqual(session.state, StompSession.DISCONNECTED) frame = session.connect(login='', passcode='') self.assertEqual(session.state, StompSession.CONNECTING) self.assertEqual( frame, commands.connect(login='', passcode='', versions=None)) session.connected( StompFrame(StompSpec.CONNECTED, {StompSpec.SESSION_HEADER: 'hi'})) self.assertEqual(session.state, StompSession.CONNECTED) self.assertEqual(session.version, StompSpec.VERSION_1_0) self.assertEqual(session.server, None) self.assertEqual(session.id, 'hi') frame = session.disconnect() self.assertEqual(frame, commands.disconnect()) session.close() self.assertEqual(session.server, None) self.assertEqual(session.id, None) self.assertEqual(session.state, StompSession.DISCONNECTED) self.assertRaises(StompProtocolError, session.connect, login='', passcode='', versions=[StompSpec.VERSION_1_1]) session = StompSession(version=StompSpec.VERSION_1_1, check=False) self.assertEqual(session.version, StompSpec.VERSION_1_1) frame = session.connect(login='', passcode='') self.assertEqual( frame, commands.connect('', '', {}, [StompSpec.VERSION_1_0, StompSpec.VERSION_1_1])) self.assertEqual(session.state, StompSession.CONNECTING) session.connected( StompFrame( StompSpec.CONNECTED, { StompSpec.SERVER_HEADER: 'moon', StompSpec.SESSION_HEADER: '4711', StompSpec.VERSION_HEADER: StompSpec.VERSION_1_1 })) self.assertEqual(session.state, StompSession.CONNECTED) self.assertEqual(session.server, 'moon') self.assertEqual(session.id, '4711') self.assertEqual(session.state, StompSession.CONNECTED) self.assertEqual(session.version, StompSpec.VERSION_1_1) frame = session.disconnect('4711') self.assertEqual(frame, commands.disconnect('4711')) session.close() self.assertEqual(session.server, None) self.assertEqual(session.id, None) self.assertEqual(session.state, StompSession.DISCONNECTED) session.connect( login='', passcode='', versions=[StompSpec.VERSION_1_0, StompSpec.VERSION_1_1]) session.connected( StompFrame(StompSpec.CONNECTED, {StompSpec.SESSION_HEADER: '4711'})) self.assertEqual(session.state, StompSession.CONNECTED) self.assertEqual(session.server, None) self.assertEqual(session.id, '4711') self.assertEqual(session.version, StompSpec.VERSION_1_0) frame = session.disconnect() session.close() self.assertEqual(frame, commands.disconnect()) self.assertEqual(session.server, None) self.assertEqual(session.id, None) self.assertEqual(session.state, StompSession.DISCONNECTED) self.assertEqual(session.version, StompSpec.VERSION_1_1) session = StompSession(version=StompSpec.VERSION_1_1, check=False) frame = session.connect(login='', passcode='', versions=[StompSpec.VERSION_1_1]) self.assertEqual(frame, commands.connect('', '', {}, [StompSpec.VERSION_1_1])) self.assertEqual(session._versions, [StompSpec.VERSION_1_1]) self.assertEqual(session.state, StompSession.CONNECTING) session.connected( StompFrame( StompSpec.CONNECTED, { StompSpec.SERVER_HEADER: 'moon', StompSpec.SESSION_HEADER: '4711', StompSpec.VERSION_HEADER: StompSpec.VERSION_1_1 })) self.assertEqual(session.clientHeartBeat, 0) self.assertEqual(session.serverHeartBeat, 0) self.assertEqual(session.state, StompSession.CONNECTED) self.assertEqual(session._versions, [StompSpec.VERSION_1_0, StompSpec.VERSION_1_1]) self.assertEqual(session.version, StompSpec.VERSION_1_1) session.disconnect('4711') session.close() self.assertEqual(session.state, StompSession.DISCONNECTED) session = StompSession(version=StompSpec.VERSION_1_1, check=False) frame = session.connect(login='', passcode='', versions=[StompSpec.VERSION_1_1], heartBeats=(1, 2)) self.assertEqual( frame, commands.connect('', '', {}, [StompSpec.VERSION_1_1], heartBeats=(1, 2))) session.connected( StompFrame( StompSpec.CONNECTED, { StompSpec.SERVER_HEADER: 'moon', StompSpec.SESSION_HEADER: '4711', StompSpec.VERSION_HEADER: StompSpec.VERSION_1_1, StompSpec.HEART_BEAT_HEADER: '3,4' })) self.assertEqual(session.clientHeartBeat, 4) self.assertEqual(session.serverHeartBeat, 3) session.disconnect() session.close() self.assertEqual(session.clientHeartBeat, 0) self.assertEqual(session.serverHeartBeat, 0) session.connect( login='', passcode='', versions=[StompSpec.VERSION_1_0, StompSpec.VERSION_1_1]) session.connected( StompFrame(StompSpec.CONNECTED, {StompSpec.SESSION_HEADER: '4711'})) self.assertEqual(session.clientHeartBeat, 0) self.assertEqual(session.serverHeartBeat, 0) session.disconnect() session.close() session.connect( login='', passcode='', versions=[StompSpec.VERSION_1_0, StompSpec.VERSION_1_1]) session.connected( StompFrame( StompSpec.CONNECTED, { StompSpec.SESSION_HEADER: '4711', StompSpec.HEART_BEAT_HEADER: '3,4' })) self.assertEqual(session.clientHeartBeat, 0) self.assertEqual(session.serverHeartBeat, 0) session.disconnect() session.close()
def test_frame_without_header_or_body_succeeds(self): parser = StompParser() parser.add(binaryType(commands.disconnect())) self.assertEqual(parser.get(), commands.disconnect())
def test_session_connect(self): session = StompSession(StompSpec.VERSION_1_0, check=False) self.assertEqual(session.version, StompSpec.VERSION_1_0) for attribute in (session.server, session.id, session.lastSent, session.lastReceived): self.assertEqual(attribute, None) for attribute in (session.clientHeartBeat, session.serverHeartBeat): self.assertEqual(attribute, 0) self.assertEqual(session.state, StompSession.DISCONNECTED) frame = session.connect(login='', passcode='') self.assertEqual(session.state, StompSession.CONNECTING) self.assertEqual(frame, commands.connect(login='', passcode='', versions=None)) session.connected(StompFrame(StompSpec.CONNECTED, {StompSpec.SESSION_HEADER: 'hi'})) self.assertEqual(session.state, StompSession.CONNECTED) self.assertEqual(session.version, StompSpec.VERSION_1_0) self.assertEqual(session.server, None) self.assertEqual(session.id, 'hi') frame = session.disconnect() self.assertEqual(frame, commands.disconnect()) session.close() self.assertEqual(session.server, None) self.assertEqual(session.id, None) self.assertEqual(session.state, StompSession.DISCONNECTED) self.assertRaises(StompProtocolError, session.connect, login='', passcode='', versions=[StompSpec.VERSION_1_1]) session = StompSession(version=StompSpec.VERSION_1_1, check=False) self.assertEqual(session.version, StompSpec.VERSION_1_1) frame = session.connect(login='', passcode='') self.assertEqual(frame, commands.connect('', '', {}, [StompSpec.VERSION_1_0, StompSpec.VERSION_1_1])) self.assertEqual(session.state, StompSession.CONNECTING) session.connected(StompFrame(StompSpec.CONNECTED, {StompSpec.SERVER_HEADER: 'moon', StompSpec.SESSION_HEADER: '4711', StompSpec.VERSION_HEADER: StompSpec.VERSION_1_1})) self.assertEqual(session.state, StompSession.CONNECTED) self.assertEqual(session.server, 'moon') self.assertEqual(session.id, '4711') self.assertEqual(session.state, StompSession.CONNECTED) self.assertEqual(session.version, StompSpec.VERSION_1_1) frame = session.disconnect('4711') self.assertEqual(frame, commands.disconnect('4711')) session.close() self.assertEqual(session.server, None) self.assertEqual(session.id, None) self.assertEqual(session.state, StompSession.DISCONNECTED) session.connect(login='', passcode='', versions=[StompSpec.VERSION_1_0, StompSpec.VERSION_1_1]) session.connected(StompFrame(StompSpec.CONNECTED, {StompSpec.SESSION_HEADER: '4711'})) self.assertEqual(session.state, StompSession.CONNECTED) self.assertEqual(session.server, None) self.assertEqual(session.id, '4711') self.assertEqual(session.version, StompSpec.VERSION_1_0) frame = session.disconnect() session.close() self.assertEqual(frame, commands.disconnect()) self.assertEqual(session.server, None) self.assertEqual(session.id, None) self.assertEqual(session.state, StompSession.DISCONNECTED) self.assertEqual(session.version, StompSpec.VERSION_1_1) session = StompSession(version=StompSpec.VERSION_1_1, check=False) frame = session.connect(login='', passcode='', versions=[StompSpec.VERSION_1_1]) self.assertEqual(frame, commands.connect('', '', {}, [StompSpec.VERSION_1_1])) self.assertEqual(session._versions, [StompSpec.VERSION_1_1]) self.assertEqual(session.state, StompSession.CONNECTING) session.connected(StompFrame(StompSpec.CONNECTED, {StompSpec.SERVER_HEADER: 'moon', StompSpec.SESSION_HEADER: '4711', StompSpec.VERSION_HEADER: StompSpec.VERSION_1_1})) self.assertEqual(session.clientHeartBeat, 0) self.assertEqual(session.serverHeartBeat, 0) self.assertEqual(session.state, StompSession.CONNECTED) self.assertEqual(session._versions, [StompSpec.VERSION_1_0, StompSpec.VERSION_1_1]) self.assertEqual(session.version, StompSpec.VERSION_1_1) session.disconnect('4711') session.close() self.assertEqual(session.state, StompSession.DISCONNECTED) session = StompSession(version=StompSpec.VERSION_1_1, check=False) frame = session.connect(login='', passcode='', versions=[StompSpec.VERSION_1_1], heartBeats=(1, 2)) self.assertEqual(frame, commands.connect('', '', {}, [StompSpec.VERSION_1_1], heartBeats=(1, 2))) session.connected(StompFrame(StompSpec.CONNECTED, {StompSpec.SERVER_HEADER: 'moon', StompSpec.SESSION_HEADER: '4711', StompSpec.VERSION_HEADER: StompSpec.VERSION_1_1, StompSpec.HEART_BEAT_HEADER: '3,4'})) self.assertEqual(session.clientHeartBeat, 4) self.assertEqual(session.serverHeartBeat, 3) session.disconnect() session.close() self.assertEqual(session.clientHeartBeat, 0) self.assertEqual(session.serverHeartBeat, 0) session.connect(login='', passcode='', versions=[StompSpec.VERSION_1_0, StompSpec.VERSION_1_1]) session.connected(StompFrame(StompSpec.CONNECTED, {StompSpec.SESSION_HEADER: '4711'})) self.assertEqual(session.clientHeartBeat, 0) self.assertEqual(session.serverHeartBeat, 0) session.disconnect() session.close() session.connect(login='', passcode='', versions=[StompSpec.VERSION_1_0, StompSpec.VERSION_1_1]) session.connected(StompFrame(StompSpec.CONNECTED, {StompSpec.SESSION_HEADER: '4711', StompSpec.HEART_BEAT_HEADER: '3,4'})) self.assertEqual(session.clientHeartBeat, 0) self.assertEqual(session.serverHeartBeat, 0) session.disconnect() session.close()
def test_disconnect(self): self.assertEqual(commands.disconnect(), StompFrame(StompSpec.DISCONNECT)) self.assertEqual(commands.disconnect(receipt='4711'), StompFrame(StompSpec.DISCONNECT, {StompSpec.RECEIPT_HEADER: '4711'}))