[CalendarServer-changes] [11056] CalendarServer/trunk/twext/enterprise/test/test_queue.py

source_changes at macosforge.org source_changes at macosforge.org
Wed Apr 17 16:02:28 PDT 2013


Revision: 11056
          http://trac.calendarserver.org//changeset/11056
Author:   glyph at apple.com
Date:     2013-04-17 16:02:28 -0700 (Wed, 17 Apr 2013)
Log Message:
-----------
Test case to verify that the lowest load worker is in fact selected, and that performing the work increases its load.

Modified Paths:
--------------
    CalendarServer/trunk/twext/enterprise/test/test_queue.py

Modified: CalendarServer/trunk/twext/enterprise/test/test_queue.py
===================================================================
--- CalendarServer/trunk/twext/enterprise/test/test_queue.py	2013-04-16 22:23:56 UTC (rev 11055)
+++ CalendarServer/trunk/twext/enterprise/test/test_queue.py	2013-04-17 23:02:28 UTC (rev 11056)
@@ -467,7 +467,32 @@
         self.assertIdentical(result, proposal)
 
 
+    def test_workerConnectionPoolPerformWork(self):
+        """
+        L{WorkerConnectionPool.performWork} performs work by selecting a
+        L{ConnectionFromWorker} and sending it a L{PerformWork} command.
+        """
+        clock = Clock()
+        peerPool = PeerConnectionPool(clock, None, 4322, schema)
+        factory = peerPool.workerListenerFactory()
+        def peer():
+            p = factory.buildProtocol(None)
+            t = StringTransport()
+            p.makeConnection(t)
+            return p, t
+        worker1, trans1 = peer()
+        worker2, trans2 = peer()
+        # Ask the worker to do something.
+        worker1.performWork(schema.DUMMY_WORK_ITEM, 1)
+        self.assertEquals(worker1.currentLoad, 1)
+        self.assertEquals(worker2.currentLoad, 0)
 
+        # Now ask the pool to do something
+        peerPool.workerPool.performWork(schema.DUMMY_WORK_ITEM, 2)
+        self.assertEquals(worker1.currentLoad, 1)
+        self.assertEquals(worker2.currentLoad, 1)
+
+
 class HalfConnection(object):
     def __init__(self, protocol):
         self.protocol = protocol
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20130417/e21175cc/attachment.html>


More information about the calendarserver-changes mailing list