|
@@ -67,6 +67,8 @@ class MySocket():
|
|
return result
|
|
return result
|
|
|
|
|
|
def recv(self, length):
|
|
def recv(self, length):
|
|
|
|
+ if len(self.recvqueue) == 0:
|
|
|
|
+ return bytes()
|
|
if length > len(self.recvqueue):
|
|
if length > len(self.recvqueue):
|
|
raise Exception("Buffer underrun in test, does the test provide the right data?")
|
|
raise Exception("Buffer underrun in test, does the test provide the right data?")
|
|
result = self.recvqueue[:length]
|
|
result = self.recvqueue[:length]
|
|
@@ -192,10 +194,10 @@ class testSession(unittest.TestCase):
|
|
# get no message without asking for a specific sequence number reply
|
|
# get no message without asking for a specific sequence number reply
|
|
self.assertFalse(sess.has_queued_msgs())
|
|
self.assertFalse(sess.has_queued_msgs())
|
|
sess._socket.addrecv({'to': 'someone', 'reply': 1}, {"hello": "a"})
|
|
sess._socket.addrecv({'to': 'someone', 'reply': 1}, {"hello": "a"})
|
|
- env, msg = sess.recvmsg(False)
|
|
|
|
|
|
+ env, msg = sess.recvmsg(True)
|
|
self.assertEqual(None, env)
|
|
self.assertEqual(None, env)
|
|
self.assertTrue(sess.has_queued_msgs())
|
|
self.assertTrue(sess.has_queued_msgs())
|
|
- env, msg = sess.recvmsg(False, 1)
|
|
|
|
|
|
+ env, msg = sess.recvmsg(True, 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())
|
|
self.assertFalse(sess.has_queued_msgs())
|
|
@@ -204,11 +206,11 @@ class testSession(unittest.TestCase):
|
|
# then ask for the one that is there
|
|
# then ask for the one that is there
|
|
self.assertFalse(sess.has_queued_msgs())
|
|
self.assertFalse(sess.has_queued_msgs())
|
|
sess._socket.addrecv({'to': 'someone', 'reply': 1}, {"hello": "a"})
|
|
sess._socket.addrecv({'to': 'someone', 'reply': 1}, {"hello": "a"})
|
|
- env, msg = sess.recvmsg(False, 2)
|
|
|
|
|
|
+ env, msg = sess.recvmsg(True, 2)
|
|
self.assertEqual(None, env)
|
|
self.assertEqual(None, env)
|
|
self.assertEqual(None, msg)
|
|
self.assertEqual(None, msg)
|
|
self.assertTrue(sess.has_queued_msgs())
|
|
self.assertTrue(sess.has_queued_msgs())
|
|
- env, msg = sess.recvmsg(False, 1)
|
|
|
|
|
|
+ env, msg = sess.recvmsg(True, 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())
|
|
self.assertFalse(sess.has_queued_msgs())
|
|
@@ -217,11 +219,11 @@ class testSession(unittest.TestCase):
|
|
# then ask for any message
|
|
# then ask for any message
|
|
self.assertFalse(sess.has_queued_msgs())
|
|
self.assertFalse(sess.has_queued_msgs())
|
|
sess._socket.addrecv({'to': 'someone', 'reply': 1}, {"hello": "a"})
|
|
sess._socket.addrecv({'to': 'someone', 'reply': 1}, {"hello": "a"})
|
|
- env, msg = sess.recvmsg(False, 2)
|
|
|
|
|
|
+ env, msg = sess.recvmsg(True, 2)
|
|
self.assertEqual(None, env)
|
|
self.assertEqual(None, env)
|
|
self.assertEqual(None, msg)
|
|
self.assertEqual(None, msg)
|
|
self.assertTrue(sess.has_queued_msgs())
|
|
self.assertTrue(sess.has_queued_msgs())
|
|
- env, msg = sess.recvmsg(False, 1)
|
|
|
|
|
|
+ env, msg = sess.recvmsg(True, 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())
|
|
self.assertFalse(sess.has_queued_msgs())
|
|
@@ -233,16 +235,16 @@ class testSession(unittest.TestCase):
|
|
# then ask for any message (get the second)
|
|
# then ask for any message (get the second)
|
|
self.assertFalse(sess.has_queued_msgs())
|
|
self.assertFalse(sess.has_queued_msgs())
|
|
sess._socket.addrecv({'to': 'someone', 'reply': 1}, {'hello': 'a'})
|
|
sess._socket.addrecv({'to': 'someone', 'reply': 1}, {'hello': 'a'})
|
|
- env, msg = sess.recvmsg(False, 2)
|
|
|
|
|
|
+ env, msg = sess.recvmsg(True, 2)
|
|
self.assertEqual(None, env)
|
|
self.assertEqual(None, env)
|
|
self.assertEqual(None, msg)
|
|
self.assertEqual(None, msg)
|
|
self.assertTrue(sess.has_queued_msgs())
|
|
self.assertTrue(sess.has_queued_msgs())
|
|
sess._socket.addrecv({'to': 'someone' }, {'hello': 'b'})
|
|
sess._socket.addrecv({'to': 'someone' }, {'hello': 'b'})
|
|
- env, msg = sess.recvmsg(False, 1)
|
|
|
|
|
|
+ env, msg = sess.recvmsg(True, 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())
|
|
self.assertFalse(sess.has_queued_msgs())
|
|
- env, msg = sess.recvmsg(False)
|
|
|
|
|
|
+ env, msg = sess.recvmsg(True)
|
|
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())
|
|
self.assertFalse(sess.has_queued_msgs())
|
|
@@ -253,11 +255,11 @@ class testSession(unittest.TestCase):
|
|
self.assertFalse(sess.has_queued_msgs())
|
|
self.assertFalse(sess.has_queued_msgs())
|
|
sess._socket.addrecv({'to': 'someone' }, {'hello': 'b'})
|
|
sess._socket.addrecv({'to': 'someone' }, {'hello': 'b'})
|
|
sess._socket.addrecv({'to': 'someone', 'reply': 1}, {'hello': 'a'})
|
|
sess._socket.addrecv({'to': 'someone', 'reply': 1}, {'hello': 'a'})
|
|
- env, msg = sess.recvmsg(False, 1)
|
|
|
|
|
|
+ env, msg = sess.recvmsg(True, 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())
|
|
self.assertTrue(sess.has_queued_msgs())
|
|
- env, msg = sess.recvmsg(False)
|
|
|
|
|
|
+ env, msg = sess.recvmsg(True)
|
|
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())
|
|
self.assertFalse(sess.has_queued_msgs())
|