[Checkins] SVN: zope.security/trunk/ Normalize testcase module-scope imports: test_checker.

Tres Seaver cvs-admin at zope.org
Fri Dec 21 01:58:21 UTC 2012


Log message for revision 128818:
  Normalize testcase module-scope imports:  test_checker.

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

-=-
Modified: zope.security/trunk/src/zope/security/tests/test_checker.py
===================================================================
--- zope.security/trunk/src/zope/security/tests/test_checker.py	2012-12-21 01:58:20 UTC (rev 128817)
+++ zope.security/trunk/src/zope/security/tests/test_checker.py	2012-12-21 01:58:21 UTC (rev 128818)
@@ -11,47 +11,11 @@
 # FOR A PARTICULAR PURPOSE.
 #
 ##############################################################################
-"""Security Checker tests
+"""Tests for zope.security.checker
 """
-from unittest import TestCase, TestSuite, main, makeSuite
-from zope.interface import implementer
-from zope.interface.verify import verifyObject
-from zope.proxy import getProxiedObject
-from zope.security.interfaces import ISecurityPolicy, Unauthorized
-from zope.security.interfaces import Forbidden, ForbiddenAttribute
-from zope.security.management import setSecurityPolicy, newInteraction
-from zope.security.management import endInteraction, getInteraction
-from zope.security.proxy import removeSecurityProxy, getChecker, Proxy
-from zope.security.checker import defineChecker, undefineChecker, ProxyFactory
-from zope.security.checker import canWrite, canAccess
-from zope.security.checker import Checker, NamesChecker, CheckerPublic
-from zope.security.checker import BasicTypes, _checkers, NoProxy, _clear
-import types, pickle
+import unittest
 
- at implementer(ISecurityPolicy)
-class SecurityPolicy(object):
 
-    def checkPermission(self, permission, object):
-        'See ISecurityPolicy'
-        return permission == 'test_allowed'
-
- at implementer(ISecurityPolicy)
-class RecordedSecurityPolicy(object):
-
-    def __init__(self):
-        self._checked = []
-        self.permissions = {}
-
-    def checkPermission(self, permission, object):
-        'See ISecurityPolicy'
-        self._checked.append(permission)
-        return self.permissions.get(permission, True)
-
-    def checkChecked(self, checked):
-        res = self._checked == checked
-        self._checked = []
-        return res
-
 class TransparentProxy(object):
     def __init__(self, ob):
         self._ob = ob
@@ -60,59 +24,44 @@
         ob = object.__getattribute__(self, '_ob')
         return getattr(ob, name)
 
-class OldInst:
-    __metaclass__ = types.ClassType
 
-    a = 1
 
-    def b(self):
-        pass
+class Test(unittest.TestCase):
 
-    c = 2
-
-    def gete(self):
-        return 3
-    e = property(gete)
-
-    def __getitem__(self, x):
-        return 5, x
-
-    def __setitem__(self, x, v):
-        pass
-
-class NewInst(object, OldInst):
-    # This is not needed, but left in to show the change of metaclass
-    # __metaclass__ = type
-
-    def gete(self):
-        return 3
-
-    def sete(self, v):
-        pass
-
-    e = property(gete, sete)
-
-
-class Test(TestCase):
-
     def setUp(self):
+        from zope.security.management import newInteraction
+        from zope.security.management import setSecurityPolicy
         from zope.security.checker import _clear
         _clear()
-        self.__oldpolicy = setSecurityPolicy(SecurityPolicy)
+        self.__oldpolicy = setSecurityPolicy(self._makeSecurityPolicy())
         newInteraction()
 
     def tearDown(self):
+        from zope.security.management import endInteraction
+        from zope.security.management import setSecurityPolicy
         from zope.security.checker import _clear
         endInteraction()
         setSecurityPolicy(self.__oldpolicy)
         _clear()
 
+    def _makeSecurityPolicy(self):
+        from zope.interface import implementer
+        from zope.security.interfaces import ISecurityPolicy
+        @implementer(ISecurityPolicy)
+        class SecurityPolicy(object):
+            def checkPermission(self, permission, object):
+                return permission == 'test_allowed'
+        return SecurityPolicy
+
     def test_typesAcceptedByDefineChecker(self):
+        import types
+        import zope.security
+        from zope.security.checker import defineChecker
+        from zope.security.checker import NamesChecker
         class ClassicClass:
             __metaclass__ = types.ClassType
         class NewStyleClass:
             __metaclass__ = type
-        import zope.security
         not_a_type = object()
         defineChecker(ClassicClass, NamesChecker())
         defineChecker(NewStyleClass, NamesChecker())
@@ -120,13 +69,46 @@
         self.assertRaises(TypeError,
                 defineChecker, not_a_type, NamesChecker())
 
+    def _makeClasses(self):
+        import types
+        class OldInst:
+            __metaclass__ = types.ClassType
+            a = 1
+            def b(self):
+                pass
+            c = 2
+            def gete(self):
+                return 3
+            e = property(gete)
+            def __getitem__(self, x):
+                return 5, x
+            def __setitem__(self, x, v):
+                pass
+
+        class NewInst(object, OldInst):
+            # This is not needed, but left in to show the change of metaclass
+            # __metaclass__ = type
+            def gete(self):
+                return 3
+            def sete(self, v):
+                pass
+            e = property(gete, sete)
+
+        return OldInst, NewInst
+
     # check_getattr cases:
     #
     # - no attribute there
     # - method
     # - allow and disallow by permission
     def test_check_getattr(self):
+        from zope.security.interfaces import Forbidden
+        from zope.security.interfaces import Unauthorized
+        from zope.security.checker import NamesChecker
+        from zope.security.checker import CheckerPublic
 
+        OldInst, NewInst = self._makeClasses()
+
         oldinst = OldInst()
         oldinst.d = OldInst()
 
@@ -170,7 +152,13 @@
             self.assertRaises(Forbidden, checker.check_getattr, inst, 'f')
 
     def test_check_setattr(self):
+        from zope.security.interfaces import Forbidden
+        from zope.security.interfaces import Unauthorized
+        from zope.security.checker import Checker
+        from zope.security.checker import CheckerPublic
 
+        OldInst, NewInst = self._makeClasses()
+
         oldinst = OldInst()
         oldinst.d = OldInst()
 
@@ -204,9 +192,16 @@
             self.assertRaises(Forbidden, checker.check_setattr, inst, 'f')
 
     def test_proxy(self):
+        from zope.security.proxy import getChecker
+        from zope.security.proxy import removeSecurityProxy
+        from zope.security.checker import BasicTypes_examples
+        from zope.security.checker import CheckerPublic
+        from zope.security.checker import NamesChecker
+
+        OldInst, NewInst = self._makeClasses()
+
         checker = NamesChecker(())
 
-        from zope.security.checker import BasicTypes_examples
         rocks = tuple(BasicTypes_examples.values())
         for rock in rocks:
             proxy = checker.proxy(rock)
@@ -244,7 +239,11 @@
             #    self.failUnless(proxy2 is proxy, [proxy, proxy2])
 
     def testLayeredProxies(self):
-        """Tests that a Proxy will not be re-proxied."""
+        #Test that a Proxy will not be re-proxied.
+        from zope.proxy import getProxiedObject
+        from zope.security.proxy import Proxy
+        from zope.security.checker import Checker
+        from zope.security.checker import NamesChecker
         class Base:
             __Security_checker__ = NamesChecker(['__Security_checker__'])
         base = Base()
@@ -325,6 +324,11 @@
         self.assertEqual(checker.check(C, '__parent__'), None)
 
     def test_setattr(self):
+        from zope.security.interfaces import Forbidden
+        from zope.security.checker import NamesChecker
+
+        OldInst, NewInst = self._makeClasses()
+
         checker = NamesChecker(['a', 'b', 'c', '__getitem__'],
                                'test_allowed')
 
@@ -337,9 +341,14 @@
     # values that evaluate to False
 
     def test_ProxyFactory(self):
+        from zope.security.checker import _defaultChecker
+        from zope.security.checker import defineChecker
+        from zope.security.checker import NamesChecker
+        from zope.security.checker import ProxyFactory
+        from zope.security.proxy import getChecker
+        from zope.security.proxy import Proxy
         class SomeClass(object):
             pass
-        import zope.security
         checker = NamesChecker()
         specific_checker = NamesChecker()
         checker_as_magic_attr = NamesChecker()
@@ -348,7 +357,6 @@
 
         proxy = ProxyFactory(obj)
         self.assert_(type(proxy) is Proxy)
-        from zope.security.checker import _defaultChecker
         self.assert_(getChecker(proxy) is _defaultChecker)
 
         defineChecker(SomeClass, checker)
@@ -368,6 +376,9 @@
         self.assert_(getChecker(proxy) is specific_checker)
 
     def test_define_and_undefineChecker(self):
+        from zope.security.checker import defineChecker
+        from zope.security.checker import NamesChecker
+        from zope.security.checker import undefineChecker
         class SomeClass(object):
             pass
         obj = SomeClass()
@@ -381,6 +392,8 @@
         self.assert_(selectChecker(obj) is _defaultChecker)
 
     def test_ProxyFactory_using_proxy(self):
+        from zope.security.checker import ProxyFactory
+        from zope.security.checker import NamesChecker
         class SomeClass(object):
             pass
         obj = SomeClass()
@@ -409,6 +422,11 @@
         # and call access to methods.
 
         # For example, consider this humble pair of class and object.
+        from zope.security.interfaces import Forbidden
+        from zope.security.checker import Checker
+        from zope.security.checker import canAccess
+        from zope.security.checker import canWrite
+        from zope.security.checker import defineChecker
         class SomeClass(object):
             pass
         obj = SomeClass()
@@ -474,31 +492,58 @@
         self.assert_(not canWrite(obj, 'bing'))
         self.assertRaises(Forbidden, canAccess, obj, 'bing')
 
-class TestCheckerPublic(TestCase):
+class TestCheckerPublic(unittest.TestCase):
 
     def test_that_pickling_CheckerPublic_retains_identity(self):
+        import pickle
+        from zope.security.checker import CheckerPublic
         self.assert_(pickle.loads(pickle.dumps(CheckerPublic))
                      is
                      CheckerPublic)
 
     def test_that_CheckerPublic_identity_works_even_when_proxied(self):
+        from zope.security.checker import ProxyFactory
+        from zope.security.checker import CheckerPublic
         self.assert_(ProxyFactory(CheckerPublic) is CheckerPublic)
 
 
-class TestMixinDecoratedChecker(TestCase):
+class TestMixinDecoratedChecker(unittest.TestCase):
 
     def decoratedSetUp(self):
-        self.policy = RecordedSecurityPolicy
+        from zope.security.management import getInteraction
+        from zope.security.management import newInteraction
+        from zope.security.management import setSecurityPolicy
+        self.policy = self._makeSecurityPolicy()
         self._oldpolicy = setSecurityPolicy(self.policy)
         newInteraction()
         self.interaction = getInteraction()
         self.obj = object()
 
     def decoratedTearDown(self):
+        from zope.security.management import endInteraction
+        from zope.security.management import setSecurityPolicy
         endInteraction()
         setSecurityPolicy(self._oldpolicy)
 
+    def _makeSecurityPolicy(self):
+        from zope.interface import implementer
+        from zope.security.interfaces import ISecurityPolicy
+        @implementer(ISecurityPolicy)
+        class RecordedSecurityPolicy(object):
+            def __init__(self):
+                self._checked = []
+                self.permissions = {}
+            def checkPermission(self, permission, object):
+                self._checked.append(permission)
+                return self.permissions.get(permission, True)
+            def checkChecked(self, checked):
+                res = self._checked == checked
+                self._checked = []
+                return res
+        return RecordedSecurityPolicy
+
     def check_checking_impl(self, checker):
+        from zope.security.interfaces import ForbiddenAttribute
         o = self.obj
         checker.check_getattr(o, 'both_get_set')
         self.assert_(self.interaction.checkChecked(['dc_get_permission']))
@@ -522,27 +567,34 @@
                           checker.check_setattr, o, 'd_only')
         self.assert_(self.interaction.checkChecked([]))
 
-    originalChecker = NamesChecker(['both_get_set', 'c_only', '__str__'],
-                                   'get_permission')
+    @property
+    def originalChecker(self):
+        from zope.security.checker import NamesChecker
+        return NamesChecker(['both_get_set', 'c_only', '__str__'],
+                            'get_permission')
 
     decorationSetMap = {'both_get_set': 'dc_set_permission'}
 
     decorationGetMap = {'both_get_set': 'dc_get_permission',
                         'd_only': 'dc_get_permission'}
 
-    overridingChecker = Checker(decorationGetMap, decorationSetMap)
+    @property
+    def overridingChecker(self):
+        from zope.security.checker import Checker
+        return Checker(self.decorationGetMap, self.decorationSetMap)
 
-class TestCombinedChecker(TestMixinDecoratedChecker, TestCase):
+class TestCombinedChecker(TestMixinDecoratedChecker, unittest.TestCase):
 
     def setUp(self):
-        TestCase.setUp(self)
+        unittest.TestCase.setUp(self)
         self.decoratedSetUp()
 
     def tearDown(self):
         self.decoratedTearDown()
-        TestCase.tearDown(self)
+        unittest.TestCase.tearDown(self)
 
     def test_checking(self):
+        from zope.security.interfaces import Unauthorized
         from zope.security.checker import CombinedChecker
         cc = CombinedChecker(self.overridingChecker, self.originalChecker)
         self.check_checking_impl(cc)
@@ -563,15 +615,20 @@
         self.assertRaises(Unauthorized, cc.check, self.obj, 'd_only')
 
     def test_interface(self):
+        from zope.interface.verify import verifyObject
         from zope.security.checker import CombinedChecker
         from zope.security.interfaces import IChecker
         dc = CombinedChecker(self.overridingChecker, self.originalChecker)
         verifyObject(IChecker, dc)
 
 
-class TestBasicTypes(TestCase):
+class TestBasicTypes(unittest.TestCase):
 
     def test(self):
+        from zope.security.checker import BasicTypes
+        from zope.security.checker import NoProxy
+        from zope.security.checker import _checkers
+        from zope.security.checker import _clear
         class MyType(object): pass
         class MyType2(object): pass
 
@@ -619,12 +676,9 @@
         self.assertRaises(NotImplementedError, BasicTypes.clear)
 
 def test_suite():
-    return TestSuite((
-        makeSuite(Test),
-        makeSuite(TestCheckerPublic),
-        makeSuite(TestCombinedChecker),
-        makeSuite(TestBasicTypes),
-        ))
-
-if __name__=='__main__':
-    main(defaultTest='test_suite')
+    return unittest.TestSuite((
+        unittest.makeSuite(Test),
+        unittest.makeSuite(TestCheckerPublic),
+        unittest.makeSuite(TestCombinedChecker),
+        unittest.makeSuite(TestBasicTypes),
+    ))



More information about the checkins mailing list