|
@@ -179,65 +179,82 @@ class testSession(unittest.TestCase):
|
|
#print("sending message {'to': 'someone', 'reply': 1}, {'hello': 'a'}")
|
|
#print("sending message {'to': 'someone', 'reply': 1}, {'hello': 'a'}")
|
|
|
|
|
|
# simply get the message without asking for a specific sequence number reply
|
|
# simply get the message without asking for a specific sequence number reply
|
|
|
|
+ self.assertFalse(sess.has_queued_msgs())
|
|
sess._socket.addrecv(b'\x00\x00\x00(\x00\x19Skan\x02to(\x07someone\x05reply&\x011Skan\x05hello(\x01a')
|
|
sess._socket.addrecv(b'\x00\x00\x00(\x00\x19Skan\x02to(\x07someone\x05reply&\x011Skan\x05hello(\x01a')
|
|
env, msg = sess.recvmsg(False)
|
|
env, msg = sess.recvmsg(False)
|
|
self.assertEqual({'to': 'someone', 'reply': 1}, env)
|
|
self.assertEqual({'to': 'someone', 'reply': 1}, env)
|
|
self.assertEqual({"hello": "a"}, msg)
|
|
self.assertEqual({"hello": "a"}, msg)
|
|
|
|
+ self.assertFalse(sess.has_queued_msgs())
|
|
|
|
|
|
# simply get the message, asking for a specific sequence number reply
|
|
# simply get the message, asking for a specific sequence number reply
|
|
|
|
+ self.assertFalse(sess.has_queued_msgs())
|
|
sess._socket.addrecv(b'\x00\x00\x00(\x00\x19Skan\x02to(\x07someone\x05reply&\x011Skan\x05hello(\x01a')
|
|
sess._socket.addrecv(b'\x00\x00\x00(\x00\x19Skan\x02to(\x07someone\x05reply&\x011Skan\x05hello(\x01a')
|
|
env, msg = sess.recvmsg(False, 1)
|
|
env, msg = sess.recvmsg(False, 1)
|
|
self.assertEqual({'to': 'someone', 'reply': 1}, env)
|
|
self.assertEqual({'to': 'someone', 'reply': 1}, env)
|
|
self.assertEqual({"hello": "a"}, msg)
|
|
self.assertEqual({"hello": "a"}, msg)
|
|
|
|
+ self.assertFalse(sess.has_queued_msgs())
|
|
|
|
|
|
# ask for a differe sequence number reply (that doesn't exist)
|
|
# ask for a differe sequence number reply (that doesn't exist)
|
|
# then ask for the one that is there
|
|
# then ask for the one that is there
|
|
|
|
+ self.assertFalse(sess.has_queued_msgs())
|
|
sess._socket.addrecv(b'\x00\x00\x00(\x00\x19Skan\x02to(\x07someone\x05reply&\x011Skan\x05hello(\x01a')
|
|
sess._socket.addrecv(b'\x00\x00\x00(\x00\x19Skan\x02to(\x07someone\x05reply&\x011Skan\x05hello(\x01a')
|
|
env, msg = sess.recvmsg(False, 2)
|
|
env, msg = sess.recvmsg(False, 2)
|
|
self.assertEqual(None, env)
|
|
self.assertEqual(None, env)
|
|
self.assertEqual(None, msg)
|
|
self.assertEqual(None, msg)
|
|
|
|
+ self.assertTrue(sess.has_queued_msgs())
|
|
env, msg = sess.recvmsg(False, 1)
|
|
env, msg = sess.recvmsg(False, 1)
|
|
self.assertEqual({'to': 'someone', 'reply': 1}, env)
|
|
self.assertEqual({'to': 'someone', 'reply': 1}, env)
|
|
self.assertEqual({"hello": "a"}, msg)
|
|
self.assertEqual({"hello": "a"}, msg)
|
|
|
|
+ self.assertFalse(sess.has_queued_msgs())
|
|
|
|
|
|
# ask for a differe sequence number reply (that doesn't exist)
|
|
# ask for a differe sequence number reply (that doesn't exist)
|
|
# then ask for any message
|
|
# then ask for any message
|
|
|
|
+ self.assertFalse(sess.has_queued_msgs())
|
|
sess._socket.addrecv(b'\x00\x00\x00(\x00\x19Skan\x02to(\x07someone\x05reply&\x011Skan\x05hello(\x01a')
|
|
sess._socket.addrecv(b'\x00\x00\x00(\x00\x19Skan\x02to(\x07someone\x05reply&\x011Skan\x05hello(\x01a')
|
|
env, msg = sess.recvmsg(False, 2)
|
|
env, msg = sess.recvmsg(False, 2)
|
|
self.assertEqual(None, env)
|
|
self.assertEqual(None, env)
|
|
self.assertEqual(None, msg)
|
|
self.assertEqual(None, msg)
|
|
|
|
+ self.assertTrue(sess.has_queued_msgs())
|
|
env, msg = sess.recvmsg(False)
|
|
env, msg = sess.recvmsg(False)
|
|
self.assertEqual({'to': 'someone', 'reply': 1}, env)
|
|
self.assertEqual({'to': 'someone', 'reply': 1}, env)
|
|
self.assertEqual({"hello": "a"}, msg)
|
|
self.assertEqual({"hello": "a"}, msg)
|
|
|
|
+ self.assertFalse(sess.has_queued_msgs())
|
|
|
|
|
|
#print("sending message {'to': 'someone', 'reply': 1}, {'hello': 'a'}")
|
|
#print("sending message {'to': 'someone', 'reply': 1}, {'hello': 'a'}")
|
|
|
|
|
|
# ask for a differe sequence number reply (that doesn't exist)
|
|
# ask for a differe sequence number reply (that doesn't exist)
|
|
# send a new message, ask for any message (get the first)
|
|
# send a new message, ask for any message (get the first)
|
|
# then ask for any message (get the second)
|
|
# then ask for any message (get the second)
|
|
|
|
+ self.assertFalse(sess.has_queued_msgs())
|
|
sess._socket.addrecv(b'\x00\x00\x00(\x00\x19Skan\x02to(\x07someone\x05reply&\x011Skan\x05hello(\x01a')
|
|
sess._socket.addrecv(b'\x00\x00\x00(\x00\x19Skan\x02to(\x07someone\x05reply&\x011Skan\x05hello(\x01a')
|
|
env, msg = sess.recvmsg(False, 2)
|
|
env, msg = sess.recvmsg(False, 2)
|
|
self.assertEqual(None, env)
|
|
self.assertEqual(None, env)
|
|
self.assertEqual(None, msg)
|
|
self.assertEqual(None, msg)
|
|
|
|
+ self.assertTrue(sess.has_queued_msgs())
|
|
sess._socket.addrecv(b'\x00\x00\x00\x1f\x00\x10Skan\x02to(\x07someoneSkan\x05hello(\x01b')
|
|
sess._socket.addrecv(b'\x00\x00\x00\x1f\x00\x10Skan\x02to(\x07someoneSkan\x05hello(\x01b')
|
|
env, msg = sess.recvmsg(False)
|
|
env, msg = sess.recvmsg(False)
|
|
self.assertEqual({'to': 'someone', 'reply': 1}, env)
|
|
self.assertEqual({'to': 'someone', 'reply': 1}, env)
|
|
self.assertEqual({"hello": "a"}, msg)
|
|
self.assertEqual({"hello": "a"}, msg)
|
|
|
|
+ self.assertFalse(sess.has_queued_msgs())
|
|
env, msg = sess.recvmsg(False)
|
|
env, msg = sess.recvmsg(False)
|
|
self.assertEqual({'to': 'someone'}, env)
|
|
self.assertEqual({'to': 'someone'}, env)
|
|
self.assertEqual({"hello": "b"}, msg)
|
|
self.assertEqual({"hello": "b"}, msg)
|
|
|
|
+ self.assertFalse(sess.has_queued_msgs())
|
|
|
|
|
|
# send a message, then one with specific reply value
|
|
# send a message, then one with specific reply value
|
|
# ask for that specific message (get the second)
|
|
# ask for that specific message (get the second)
|
|
# then ask for any message (get the first)
|
|
# then ask for any message (get the first)
|
|
|
|
+ self.assertFalse(sess.has_queued_msgs())
|
|
sess._socket.addrecv(b'\x00\x00\x00\x1f\x00\x10Skan\x02to(\x07someoneSkan\x05hello(\x01b')
|
|
sess._socket.addrecv(b'\x00\x00\x00\x1f\x00\x10Skan\x02to(\x07someoneSkan\x05hello(\x01b')
|
|
sess._socket.addrecv(b'\x00\x00\x00(\x00\x19Skan\x02to(\x07someone\x05reply&\x011Skan\x05hello(\x01a')
|
|
sess._socket.addrecv(b'\x00\x00\x00(\x00\x19Skan\x02to(\x07someone\x05reply&\x011Skan\x05hello(\x01a')
|
|
env, msg = sess.recvmsg(False, 1)
|
|
env, msg = sess.recvmsg(False, 1)
|
|
self.assertEqual({'to': 'someone', 'reply': 1}, env)
|
|
self.assertEqual({'to': 'someone', 'reply': 1}, env)
|
|
self.assertEqual({"hello": "a"}, msg)
|
|
self.assertEqual({"hello": "a"}, msg)
|
|
|
|
+ self.assertTrue(sess.has_queued_msgs())
|
|
env, msg = sess.recvmsg(False)
|
|
env, msg = sess.recvmsg(False)
|
|
self.assertEqual({'to': 'someone'}, env)
|
|
self.assertEqual({'to': 'someone'}, env)
|
|
self.assertEqual({"hello": "b"}, msg)
|
|
self.assertEqual({"hello": "b"}, msg)
|
|
|
|
+ self.assertFalse(sess.has_queued_msgs())
|
|
|
|
|
|
def test_next_sequence(self):
|
|
def test_next_sequence(self):
|
|
sess = MySession()
|
|
sess = MySession()
|