[Checkins] SVN: zope.dublincore/trunk/ Make CreatorAnnotator not to fail if participation principal is None

Dan Korostelev nadako at gmail.com
Wed Dec 10 08:14:39 EST 2008


Log message for revision 93841:
  Make CreatorAnnotator not to fail if participation principal is None

Changed:
  U   zope.dublincore/trunk/CHANGES.txt
  U   zope.dublincore/trunk/src/zope/dublincore/creatorannotator.py
  U   zope.dublincore/trunk/src/zope/dublincore/tests/test_creatorannotator.py

-=-
Modified: zope.dublincore/trunk/CHANGES.txt
===================================================================
--- zope.dublincore/trunk/CHANGES.txt	2008-12-10 10:10:05 UTC (rev 93840)
+++ zope.dublincore/trunk/CHANGES.txt	2008-12-10 13:14:39 UTC (rev 93841)
@@ -4,7 +4,7 @@
 3.4.1 (unreleased)
 ------------------
 
-...
+- Fix: Make CreatorAnnotator not to fail if participation principal is None
 
 3.4.0 (2007-09-28)
 ------------------

Modified: zope.dublincore/trunk/src/zope/dublincore/creatorannotator.py
===================================================================
--- zope.dublincore/trunk/src/zope/dublincore/creatorannotator.py	2008-12-10 10:10:05 UTC (rev 93840)
+++ zope.dublincore/trunk/src/zope/dublincore/creatorannotator.py	2008-12-10 13:14:39 UTC (rev 93841)
@@ -37,6 +37,8 @@
     interaction = queryInteraction()
     if interaction is not None:
         for participation in interaction.participations:
+            if participation.principal is None:
+                continue
             principalid = participation.principal.id
             if not principalid in dc.creators:
                 dc.creators = dc.creators + (unicode(principalid), )

Modified: zope.dublincore/trunk/src/zope/dublincore/tests/test_creatorannotator.py
===================================================================
--- zope.dublincore/trunk/src/zope/dublincore/tests/test_creatorannotator.py	2008-12-10 10:10:05 UTC (rev 93840)
+++ zope.dublincore/trunk/src/zope/dublincore/tests/test_creatorannotator.py	2008-12-10 13:14:39 UTC (rev 93841)
@@ -127,6 +127,13 @@
         self.failUnless(bad_author.id in data.creators)
         endInteraction()
 
+        # Now, let's check if the auto-subscriber will work with None
+        # as principal (can happen sometimes in custom code).
+        newInteraction(DummyRequest(None))
+        CreatorAnnotator(event)
+        self.failIf(len(data.creators) != 2)
+        endInteraction()
+
 def test_suite():
     return TestSuite((
         makeSuite(Test),



More information about the Checkins mailing list