def testFramepack1(self): """Testing pack, unpacking and the Frame class. """ # Check bad frame generation: frame = stomper.Frame() def bad(): frame.cmd = 'SOME UNNOWN CMD' self.assertRaises(stomper.FrameError, bad) # Generate a MESSAGE frame: frame = stomper.Frame() frame.cmd = 'MESSAGE' frame.headers['destination'] = '/queue/a' frame.headers['message-id'] = 'card_data' frame.body = "hello queue a" result = frame.pack() # print "\n-- result " + "----" * 10 # pprint.pprint(result) # print # Try bad message unpack catching: bad_frame = stomper.Frame() self.assertRaises(stomper.FrameError, bad_frame.unpack, None) self.assertRaises(stomper.FrameError, bad_frame.unpack, '') # Try to read the generated frame back in # and then check the variables are set up # correctly: frame2 = stomper.Frame() frame2.unpack(result) self.assertEquals(frame2.cmd, 'MESSAGE') self.assertEquals(frame2.headers['destination'], '/queue/a') self.assertEquals(frame2.headers['message-id'], 'card_data') self.assertEquals(frame2.body, 'hello queue a') result = frame2.pack() correct = "MESSAGE\ndestination:/queue/a\nmessage-id:card_data\n\nhello queue a\x00\n" # print "result: " # pprint.pprint(result) # print # print "correct: " # pprint.pprint(correct) # print # self.assertEquals(result, correct) result = stomper.unpack_frame(result) self.assertEquals(result['cmd'], 'MESSAGE') self.assertEquals(result['headers']['destination'], '/queue/a') self.assertEquals(result['headers']['message-id'], 'card_data') self.assertEquals(result['body'], 'hello queue a')
def testFrameUnpack3(self): """Testing unpack frame function against CONNECTED """ msg = """CONNECTED session:ID:snorky.local-49191-1185461799654-3:18 """ result = stomper.unpack_frame(msg) self.assertEquals(result['cmd'], 'CONNECTED') self.assertEquals(result['headers']['session'], 'ID:snorky.local-49191-1185461799654-3:18') self.assertEquals(result['body'], '')
def testEngine(self): """Test the basic state machine. """ e = stomper.Engine(testing=True) # test session connected message: msg = """CONNECTED session:ID:snorky.local-49191-1185461799654-3:18 \x00 """ result = stomper.unpack_frame(msg) correct = '' returned = e.react(result) self.assertEquals(returned, correct) # test message: msg = """MESSAGE destination: /queue/a message-id: some-message-id hello queue a \x00 """ returned = e.react(msg) correct = 'ACK\nmessage-id: some-message-id\n\n\x00\n' self.assertEquals(returned, correct) # test error: msg = """ERROR message:some error There was a problem with your last message \x00 """ returned = e.react(msg) correct = 'error' self.assertEquals(returned, correct) # test receipt: msg = """RECEIPT message-id: some-message-id \x00 """ returned = e.react(msg) correct = 'receipt' self.assertEquals(returned, correct)
def testBugInFrameUnpack1(self): msg = """MESSAGE destination:/queue/a message-id: card_data hello queue a \x00 """ result = stomper.unpack_frame(msg) self.assertEquals(result['cmd'], 'MESSAGE') self.assertEquals(result['headers']['destination'], '/queue/a') self.assertEquals(result['headers']['message-id'], 'card_data') self.assertEquals(result['body'], 'hello queue a')
def testFrameUnpack2(self): """Testing unpack frame function against MESSAGE """ msg = """MESSAGE destination:/queue/a message-id: card_data hello queue a""" result = stomper.unpack_frame(msg) self.assertEquals(result['cmd'], 'MESSAGE') self.assertEquals(result['headers']['destination'], '/queue/a') self.assertEquals(result['headers']['message-id'], 'card_data') self.assertEquals(result['body'], 'hello queue a')