Request the right number of handles when Connector receives messages

R=qsr@chromium.org

Review URL: https://codereview.chromium.org/739753003
diff --git a/mojo/public/python/mojo/bindings/messaging.py b/mojo/public/python/mojo/bindings/messaging.py
index bba3c01..c1d54fc 100644
--- a/mojo/public/python/mojo/bindings/messaging.py
+++ b/mojo/public/python/mojo/bindings/messaging.py
@@ -398,7 +398,7 @@
     message_receiver.Accept(Message(bytearray(), []))
   if result != system.RESULT_RESOURCE_EXHAUSTED:
     return result
-  (result, data, _) = handle.ReadMessage(bytearray(sizes[0]))
+  (result, data, _) = handle.ReadMessage(bytearray(sizes[0]), sizes[1])
   if result == system.RESULT_OK and message_receiver:
     message_receiver.Accept(Message(data[0], data[1]))
   return result
diff --git a/mojo/python/tests/messaging_unittest.py b/mojo/python/tests/messaging_unittest.py
index 767ba74..e09532f 100644
--- a/mojo/python/tests/messaging_unittest.py
+++ b/mojo/python/tests/messaging_unittest.py
@@ -45,6 +45,8 @@
   def tearDown(self):
     self.connector = None
     self.handle = None
+    self.received_messages = []
+    self.received_errors = []
     super(ConnectorTest, self).tearDown()
 
   def testConnectorRead(self):
@@ -72,6 +74,14 @@
     (result, _, _) = self.handle.ReadMessage()
     self.assertEquals(result, system.RESULT_FAILED_PRECONDITION)
 
+  def testConnectorWriteHandle(self):
+    new_handles = system.MessagePipe()
+    self.handle.WriteMessage(None, [new_handles.handle0])
+    self.loop.RunUntilIdle()
+    self.assertTrue(self.received_messages)
+    self.assertTrue(self.received_messages[0].handles)
+    self.assertFalse(self.received_errors)
+
 
 class HeaderTest(unittest.TestCase):