import/export: Validate remote host/port
[ganeti-local] / test / ganeti.daemon_unittest.py
index 968c9cb..472ceb7 100755 (executable)
@@ -31,6 +31,7 @@ import shutil
 
 from ganeti import daemon
 from ganeti import errors
+from ganeti import constants
 from ganeti import utils
 
 import testutils
@@ -188,12 +189,6 @@ class TestAsyncUDPSocket(testutils.GanetiTestCase):
   def testNoDoubleBind(self):
     self.assertRaises(socket.error, self.client.bind, ("127.0.0.1", self.port))
 
-  def _ThreadedClient(self, payload):
-    self.client.enqueue_send("127.0.0.1", self.port, payload)
-    print "sending %s" % payload
-    while self.client.writable():
-      self.client.handle_write()
-
   def testAsyncClientServer(self):
     self.client.enqueue_send("127.0.0.1", self.port, "p1")
     self.client.enqueue_send("127.0.0.1", self.port, "p2")
@@ -202,6 +197,7 @@ class TestAsyncUDPSocket(testutils.GanetiTestCase):
     self.assertEquals(self.server.received, ["p1", "p2", "terminate"])
 
   def testSyncClientServer(self):
+    self.client.handle_write()
     self.client.enqueue_send("127.0.0.1", self.port, "p1")
     self.client.enqueue_send("127.0.0.1", self.port, "p2")
     while self.client.writable():
@@ -247,6 +243,11 @@ class TestAsyncUDPSocket(testutils.GanetiTestCase):
     self.mainloop.Run()
     self.assertEquals(self.server.received, ["p1", "p2", "terminate"])
 
+  def testOversizedDatagram(self):
+    oversized_data = (constants.MAX_UDP_DATA_SIZE + 1) * "a"
+    self.assertRaises(errors.UdpDataSizeError, self.client.enqueue_send,
+                      "127.0.0.1", self.port, oversized_data)
+
 
 class _MyAsyncStreamServer(daemon.AsyncStreamServer):