Exemple #1
0
    def receiveFrame(self):
        self._checkConnected()
        parser = StompFrameLineParser()
        while (not parser.isDone()):
            parser.processLine(self.sfile.readline()[:-1])

        return parser.getMessage()
Exemple #2
0
 def parseFrame(self, message):
     from stompest.parser import StompFrameLineParser
     parser = StompFrameLineParser()        
     for line in message.split('\n')[:-1]:
         parser.processLine(line)
     self.assertTrue(parser.isDone())
     return parser.getMessage()
Exemple #3
0
 def test_frame_without_header_or_body_succeeds(self):
     cmd = stomper.disconnect()
     lines = cmd.split('\n')[:-1]
     parser = StompFrameLineParser()
     for line in lines:
         parser.processLine(line)
     msg = parser.getMessage()
     self.assertEqual(msg, {'cmd': 'DISCONNECT', 'headers': {}, 'body': ''})
Exemple #4
0
    def test_processLine_throws_FrameError_after_done(self):
        cmd = stomper.connect('foo', 'bar')
        lines = cmd.split('\n')[:-1]

        parser = StompFrameLineParser()
        for line in lines:
            parser.processLine(line)
            
        self.assertTrue(parser.isDone())
        self.assertRaises(StompFrameError, lambda: parser.processLine('SEND'))
Exemple #5
0
    def test_frameParse_succeeds(self):
        frame = stomper.Frame()
        frame.cmd = 'SEND'
        frame.headers = {'foo': 'bar', 'hello ': 'there-world with space ', 'empty-value':'', '':'empty-header'}
        frame.headers['destination'] = '/queue/blah'
        frame.body = 'some stuff\nand more'
        cmd = frame.pack()
        lines = cmd.split('\n')[:-1]

        parser = StompFrameLineParser()
        self.assertFalse(parser.isDone())
        for line in lines:
            self.assertFalse(parser.isDone())
            parser.processLine(line)
        self.assertTrue(parser.isDone())
                
        msg = parser.getMessage()
        self.assertEqual(msg, {'cmd': 'SEND', 
                               'headers': {'foo': 'bar', 'hello ': 'there-world with space ', 'empty-value':'', '':'empty-header', 'destination': '/queue/blah'},
                               'body': 'some stuff\nand more'})
Exemple #6
0
 def test_processLine_throws_FrameError_on_header_line_missing_separator(self):
     parser = StompFrameLineParser()
     parser.processLine('SEND')
     self.assertRaises(StompFrameError, lambda: parser.processLine('no separator'))
Exemple #7
0
 def test_processLine_throws_FrameError_on_empty_command(self):
     parser = StompFrameLineParser()
     self.assertRaises(StompFrameError, lambda: parser.processLine(''))
Exemple #8
0
 def test_getMessage_returns_None_if_not_done(self):
     parser = StompFrameLineParser()
     self.assertEqual(None, parser.getMessage())
     parser.processLine('CONNECT')
     self.assertEqual(None, parser.getMessage())