[CalendarServer-changes] [11678] CalendarServer/trunk/twext/python
source_changes at macosforge.org
source_changes at macosforge.org
Thu Sep 12 14:17:25 PDT 2013
Revision: 11678
http://trac.calendarserver.org//changeset/11678
Author: wsanchez at apple.com
Date: 2013-09-12 14:17:25 -0700 (Thu, 12 Sep 2013)
Log Message:
-----------
test_fanOut() didn't actually test that evetns were seen.
Add test_observerRaises().
Modified Paths:
--------------
CalendarServer/trunk/twext/python/log.py
CalendarServer/trunk/twext/python/test/test_log.py
Modified: CalendarServer/trunk/twext/python/log.py
===================================================================
--- CalendarServer/trunk/twext/python/log.py 2013-09-12 20:53:04 UTC (rev 11677)
+++ CalendarServer/trunk/twext/python/log.py 2013-09-12 21:17:25 UTC (rev 11678)
@@ -245,12 +245,12 @@
for key, value in event.items():
try:
keyFormatted = u"{key!r}".format(key=key)
- except:
+ except BaseException:
keyFormatted = u"<UNFORMATTABLE KEY>"
try:
valueFormatted = u"{value!r}".format(value=value)
- except:
+ except BaseException:
valueFormatted = u"<UNFORMATTABLE VALUE>"
items.append(" = ".join((keyFormatted, valueFormatted)))
@@ -556,7 +556,7 @@
for observer in self.observers:
try:
observer(event)
- except:
+ except BaseException as e:
#
# We have to remove the offending observer because
# we're going to badmouth it to all of its friends
@@ -565,8 +565,8 @@
#
self.removeObserver(observer)
try:
- self.log.failure("Observer {observer} raised an exception; removing.", observer=observer)
- except:
+ self.log.failure("Temporarily removing observer {observer} due to exception: {e}", observer=observer, e=e)
+ except BaseException:
pass
finally:
self.addObserver(observer)
Modified: CalendarServer/trunk/twext/python/test/test_log.py
===================================================================
--- CalendarServer/trunk/twext/python/test/test_log.py 2013-09-12 20:53:04 UTC (rev 11677)
+++ CalendarServer/trunk/twext/python/test/test_log.py 2013-09-12 21:17:25 UTC (rev 11678)
@@ -200,7 +200,7 @@
self.assertEquals(
formatWithCall(
u"Hello, {repr()!r}.",
- dict(repr=lambda: 'repr')
+ dict(repr=lambda: "repr")
),
"Hello, 'repr'."
)
@@ -539,20 +539,46 @@
"""
L{LogPublisher} calls its observers.
"""
- e1 = []
- e2 = []
- e3 = []
+ event = dict(foo=1, bar=2)
- o1 = lambda e: e1.append(e)
- o2 = lambda e: e2.append(e)
- o3 = lambda e: e3.append(e)
+ events1 = []
+ events2 = []
+ events3 = []
+ o1 = lambda e: events1.append(e)
+ o2 = lambda e: events2.append(e)
+ o3 = lambda e: events3.append(e)
+
publisher = LogPublisher(o1, o2, o3)
- publisher.removeObserver(o2)
- self.assertEquals(set((o1, o3)), set(publisher.observers))
+ publisher(event)
+ self.assertIn(event, events1)
+ self.assertIn(event, events2)
+ self.assertIn(event, events3)
+ def test_observerRaises(self):
+ event = dict(foo=1, bar=2)
+ exception = RuntimeError("ARGH! EVIL DEATH!")
+ events = []
+
+ def o(event):
+ events.append(event)
+ raise exception
+
+ publisher = LogPublisher(o)
+ publisher(event)
+
+ # Verify that the observer saw my event
+ self.assertIn(event, events)
+
+ # Verify that the observer raised my exception
+ errors = self.flushLoggedErrors(exception.__class__)
+ self.assertEquals(len(errors), 1)
+ self.assertIdentical(errors[0].value, exception)
+
+
+
class FilteringLogObserverTests(SetUpTearDown, unittest.TestCase):
"""
Tests for L{FilteringLogObserver}.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20130912/3d43049d/attachment.html>
More information about the calendarserver-changes
mailing list