[CalendarServer-changes] [11474] CalendarServer/branches/users/glyph/hang-fix/twext/internet/test/ test_sendfdport.py

source_changes at macosforge.org source_changes at macosforge.org
Fri Jul 5 17:43:06 PDT 2013


Revision: 11474
          http://trac.calendarserver.org//changeset/11474
Author:   glyph at apple.com
Date:     2013-07-05 17:43:05 -0700 (Fri, 05 Jul 2013)
Log Message:
-----------
Refactor tests.

Modified Paths:
--------------
    CalendarServer/branches/users/glyph/hang-fix/twext/internet/test/test_sendfdport.py

Modified: CalendarServer/branches/users/glyph/hang-fix/twext/internet/test/test_sendfdport.py
===================================================================
--- CalendarServer/branches/users/glyph/hang-fix/twext/internet/test/test_sendfdport.py	2013-07-06 00:43:04 UTC (rev 11473)
+++ CalendarServer/branches/users/glyph/hang-fix/twext/internet/test/test_sendfdport.py	2013-07-06 00:43:05 UTC (rev 11474)
@@ -22,28 +22,34 @@
 import os
 import fcntl
 
-from twext.internet.sendfdport import InheritedSocketDispatcher,\
-    _SubprocessSocket
+from twext.internet.sendfdport import InheritedSocketDispatcher
+
 from twext.web2.metafd import ConnectionLimiter
 from twisted.internet.interfaces import IReactorFDSet
 from twisted.trial.unittest import TestCase
-from zope.interface.declarations import implements
+from zope.interface import implementer
 
-
+ at implementer(IReactorFDSet)
 class ReaderAdder(object):
-    implements(IReactorFDSet)
 
     def __init__(self):
         self.readers = []
+        self.writers = []
 
+
     def addReader(self, reader):
         self.readers.append(reader)
 
+
     def getReaders(self):
         return self.readers[:]
 
 
+    def addWriter(self, writer):
+        self.writers.append(writer)
 
+
+
 def isNonBlocking(skt):
     """
     Determine if the given socket is blocking or not.
@@ -63,6 +69,10 @@
     """
     Inherited socket dispatcher tests.
     """
+    def setUp(self):
+        self.dispatcher = InheritedSocketDispatcher(ConnectionLimiter(2, 20))
+        self.dispatcher.reactor = ReaderAdder()
+            
 
     def test_nonBlocking(self):
         """
@@ -71,12 +81,10 @@
         L{socket.socket} object being assigned to its C{skt} attribute, as well
         as a non-blocking L{socket.socket} object being returned.
         """
-        dispatcher = InheritedSocketDispatcher(None)
+        dispatcher = self.dispatcher
         dispatcher.startDispatching()
-        reactor = ReaderAdder()
-        dispatcher.reactor = reactor
         inputSocket = dispatcher.addSocket()
-        outputSocket = reactor.readers[-1]
+        outputSocket = self.dispatcher.reactor.readers[-1]
         self.assertTrue(isNonBlocking(inputSocket), "Input is blocking.")
         self.assertTrue(isNonBlocking(outputSocket), "Output is blocking.")
 
@@ -86,12 +94,11 @@
         Adding a socket to an L{InheritedSocketDispatcher} after it has already
         been started results in it immediately starting reading.
         """
-        reactor = ReaderAdder()
-        dispatcher = InheritedSocketDispatcher(None)
-        dispatcher.reactor = reactor
+        dispatcher = self.dispatcher
         dispatcher.startDispatching()
         dispatcher.addSocket()
-        self.assertEquals(reactor.getReaders(), dispatcher._subprocessSockets)
+        self.assertEquals(dispatcher.reactor.getReaders(),
+                          dispatcher._subprocessSockets)
 
 
     def test_sendFileDescriptorSorting(self):
@@ -99,9 +106,7 @@
         Make sure InheritedSocketDispatcher.sendFileDescriptor sorts sockets
         with status None higher than those with int status values.
         """
-
-        self.patch(_SubprocessSocket, 'sendSocketToPeer', lambda x, y, z:None)
-        dispatcher = InheritedSocketDispatcher(ConnectionLimiter(2, 20))
+        dispatcher = self.dispatcher
         dispatcher.addSocket()
         dispatcher.addSocket()
         dispatcher.addSocket()
@@ -146,10 +151,10 @@
         self.assertEqual(sockets[2].status, None)
 
 
-    def test_statusChangedOnNewConnection(self):
+    def test_statusesChangedOnNewConnection(self):
         """
         L{InheritedSocketDispatcher.sendFileDescriptor} will update its
-        C{statusWatcher} via C{statusChanged}.
+        C{statusWatcher} via C{statusesChanged}.
         """
         q = []
         class Watcher(object):
@@ -165,13 +170,8 @@
 
             def statusesChanged(self, statuses):
                 q.append(statuses)
-        dispatcher = InheritedSocketDispatcher(Watcher())
-        class Reactish(object):
-            def addReader(self, reader):
-                pass
-            def addWriter(self, writer):
-                pass
-        dispatcher.reactor = Reactish()
+        dispatcher = self.dispatcher
+        dispatcher.statusWatcher = Watcher()
         description = "whatever"
         # Need to have a socket that will accept the descriptors.
         dispatcher.addSocket()
@@ -179,3 +179,4 @@
         dispatcher.sendFileDescriptor(object(), description)
         self.assertEquals(q, [1, 1])
 
+
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20130705/8f2921e8/attachment-0001.html>


More information about the calendarserver-changes mailing list