[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