[Checkins] SVN: zope.security/trunk/ Coverage for z.s.adapter.assertLocation.

Tres Seaver cvs-admin at zope.org
Mon Dec 24 15:58:43 UTC 2012


Log message for revision 128891:
  Coverage for z.s.adapter.assertLocation.

Changed:
  _U  zope.security/trunk/
  U   zope.security/trunk/src/zope/security/adapter.py
  U   zope.security/trunk/src/zope/security/tests/test_adapter.py

-=-
Modified: zope.security/trunk/src/zope/security/adapter.py
===================================================================
--- zope.security/trunk/src/zope/security/adapter.py	2012-12-23 20:55:07 UTC (rev 128890)
+++ zope.security/trunk/src/zope/security/adapter.py	2012-12-24 15:58:42 UTC (rev 128891)
@@ -38,8 +38,7 @@
         return adapter
 
     # handle locatable, parentful adapters (C)
-    else:
-        return adapter
+    return adapter
 
 
 class LocatingTrustedAdapterFactory(object):

Modified: zope.security/trunk/src/zope/security/tests/test_adapter.py
===================================================================
--- zope.security/trunk/src/zope/security/tests/test_adapter.py	2012-12-23 20:55:07 UTC (rev 128890)
+++ zope.security/trunk/src/zope/security/tests/test_adapter.py	2012-12-24 15:58:42 UTC (rev 128891)
@@ -14,6 +14,67 @@
 import unittest
 
 
+def _skip_wo_zope_location(testfunc):
+    try:
+        import zope.location
+    except ImportError:
+        from functools import update_wrapper
+        def dummy(self):
+            pass
+        update_wrapper(dummy, testfunc)
+        return dummy
+    else:
+        return testfunc
+
+
+class Test_assertLocation(unittest.TestCase):
+
+    def _callFUT(self, adapter, parent):
+        from zope.security.adapter import assertLocation
+        return assertLocation(adapter, parent)
+
+    @_skip_wo_zope_location
+    def test_w_non_ILocation(self):
+        from zope.location import LocationProxy
+        from zope.proxy import getProxiedObject
+        class _Adapter(object):
+            pass
+        adapter = _Adapter()
+        parent = object()
+        returned = self._callFUT(adapter, parent)
+        self.assertTrue(isinstance(returned, LocationProxy))
+        self.assertTrue(getProxiedObject(returned) is adapter)
+        self.assertTrue(returned.__parent__ is parent)
+
+    @_skip_wo_zope_location
+    def test_w_ILocation_no_parent(self):
+        from zope.interface import implementer
+        from zope.location import ILocation
+        @implementer(ILocation)
+        class _Adapter(object):
+            __parent__ = None
+        adapter = _Adapter()
+        parent = object()
+        returned = self._callFUT(adapter, parent)
+        self.assertTrue(returned is adapter)
+        self.assertTrue(returned.__parent__ is parent)
+
+    @_skip_wo_zope_location
+    def test_w_ILocation_w_parent(self):
+        from zope.interface import implementer
+        from zope.location import ILocation
+        parent = object()
+        @implementer(ILocation)
+        class _Adapter(object):
+            __parent__ = parent
+        adapter = _Adapter()
+        new_parent = object()
+        returned = self._callFUT(adapter, new_parent)
+        self.assertTrue(returned is adapter)
+        self.assertTrue(returned.__parent__ is parent)
+
+
 def test_suite():
     return unittest.TestSuite((
-        ))
+        unittest.makeSuite(Test_assertLocation),
+    ))



More information about the checkins mailing list