[CalendarServer-changes] [12773] CalendarServer/trunk/calendarserver/webadmin

source_changes at macosforge.org source_changes at macosforge.org
Thu Feb 27 16:23:44 PST 2014


Revision: 12773
          http://trac.calendarserver.org//changeset/12773
Author:   wsanchez at apple.com
Date:     2014-02-27 16:23:44 -0800 (Thu, 27 Feb 2014)
Log Message:
-----------
Send EOF when we run out of events; blocking doesn't work when run in server for some reason.

Modified Paths:
--------------
    CalendarServer/trunk/calendarserver/webadmin/eventsource.py
    CalendarServer/trunk/calendarserver/webadmin/test/test_eventsource.py

Modified: CalendarServer/trunk/calendarserver/webadmin/eventsource.py
===================================================================
--- CalendarServer/trunk/calendarserver/webadmin/eventsource.py	2014-02-27 23:46:45 UTC (rev 12772)
+++ CalendarServer/trunk/calendarserver/webadmin/eventsource.py	2014-02-28 00:23:44 UTC (rev 12773)
@@ -153,9 +153,11 @@
         )
 
         # Keep track of the event streams
-        request.addResponseFilter(
-            lambda r: self._streams.remove(response.stream)
-        )
+        def cleanupFilter(_request, _response):
+            self._streams.remove(response.stream)
+            return _response
+
+        request.addResponseFilter(cleanupFilter)
         self._streams.add(response.stream)
 
         return response
@@ -240,6 +242,10 @@
 
             return succeed(b"")
 
+        # This causes the client to poll, which is undesirable, but the
+        # deferred below doesn't seem to work in real use...
+        return succeed(None)
+
         d = Deferred()
         self._deferredRead = d
         return d

Modified: CalendarServer/trunk/calendarserver/webadmin/test/test_eventsource.py
===================================================================
--- CalendarServer/trunk/calendarserver/webadmin/test/test_eventsource.py	2014-02-27 23:46:45 UTC (rev 12772)
+++ CalendarServer/trunk/calendarserver/webadmin/test/test_eventsource.py	2014-02-28 00:23:44 UTC (rev 12773)
@@ -203,14 +203,25 @@
                 )
             )
 
-        # The next read should block on new events.
+
+    @inlineCallbacks
+    def test_streamWaitForEvents(self):
+        """
+        Stream reading blocks on additional events.
+        """
+        resource = self.eventSourceResource()
+        response = self.render(resource)
+
+        # Read should block on new events.
         d = response.stream.read()
         self.assertFalse(d.called)
 
         d.addErrback(lambda f: None)
         d.cancel()
 
+    test_streamWaitForEvents.todo = "Feature disabled; needs debugging"
 
+
     @inlineCallbacks
     def test_streamNewEvents(self):
         """
@@ -260,6 +271,7 @@
         d.addErrback(lambda f: None)
         d.cancel()
 
+    test_streamNewEvents.todo = "Feature disabled; needs debugging"
 
 
 @implementer(IEventDecoder)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20140227/a68feffc/attachment-0001.html>


More information about the calendarserver-changes mailing list