From 3ec8f4db24b5d83a5c884fe793e355aacefe87f5 Mon Sep 17 00:00:00 2001 From: Michael Howitz Date: Thu, 4 May 2017 13:54:44 +0200 Subject: [PATCH] No longer check for older Python 2 versions. --- src/AccessControl/ZopeGuards.py | 26 ++--- src/AccessControl/tests/testZopeGuards.py | 112 ++++++++++------------ 2 files changed, 61 insertions(+), 77 deletions(-) diff --git a/src/AccessControl/ZopeGuards.py b/src/AccessControl/ZopeGuards.py index d778921..27b16ad 100644 --- a/src/AccessControl/ZopeGuards.py +++ b/src/AccessControl/ZopeGuards.py @@ -18,7 +18,6 @@ import random import six import string -import sys import warnings import RestrictedPython @@ -425,9 +424,8 @@ class GuardedListType: def __call__(self, *args, **kwargs): return list(*args, **kwargs) - if sys.version_info >= (2, 4): - def sorted(self, iterable, cmp=None, key=None, reverse=False): - return list.sorted(iterable, cmp=None, key=None, reverse=False) + def sorted(self, iterable, cmp=None, key=None, reverse=False): + return list.sorted(iterable, cmp=None, key=None, reverse=False) safe_builtins['list'] = GuardedListType() @@ -511,16 +509,18 @@ def builtin_guarded_apply(func, args=(), kws={}): safe_builtins['apply'] = builtin_guarded_apply -# Similar to min and reduce, use guarded_iter on the sequence being -# tested and apply the original function. -if sys.version_info >= (2, 5): - def guarded_any(seq): - return any(guarded_iter(seq)) - safe_builtins['any'] = guarded_any +def guarded_any(seq): + return any(guarded_iter(seq)) - def guarded_all(seq): - return all(guarded_iter(seq)) - safe_builtins['all'] = guarded_all + +safe_builtins['any'] = guarded_any + + +def guarded_all(seq): + return all(guarded_iter(seq)) + + +safe_builtins['all'] = guarded_all # This metaclass supplies the security declarations that allow all diff --git a/src/AccessControl/tests/testZopeGuards.py b/src/AccessControl/tests/testZopeGuards.py index e32d317..df5d66d 100644 --- a/src/AccessControl/tests/testZopeGuards.py +++ b/src/AccessControl/tests/testZopeGuards.py @@ -14,6 +14,8 @@ """Test Zope Guards """ +from AccessControl.ZopeGuards import guarded_all +from AccessControl.ZopeGuards import guarded_any from AccessControl.ZopeGuards import guarded_getattr import doctest @@ -23,14 +25,6 @@ import sys import unittest - -if sys.version_info >= (2, 5): - from AccessControl.ZopeGuards import guarded_any - from AccessControl.ZopeGuards import guarded_all - MIN_MAX_TAKE_KEY = True -else: - MIN_MAX_TAKE_KEY = False - try: __file__ except NameError: @@ -395,20 +389,19 @@ def test_map_fails(self): [1, 2, 3], [3, 2, 1]) self.setSecurityManager(old) - if sys.version_info >= (2, 5): - def test_all_fails(self): - from AccessControl import Unauthorized - sm = SecurityManager(1) # rejects - old = self.setSecurityManager(sm) - self.assertRaises(Unauthorized, guarded_all, [True, True, False]) - self.setSecurityManager(old) + def test_all_fails(self): + from AccessControl import Unauthorized + sm = SecurityManager(1) # rejects + old = self.setSecurityManager(sm) + self.assertRaises(Unauthorized, guarded_all, [True, True, False]) + self.setSecurityManager(old) - def test_any_fails(self): - from AccessControl import Unauthorized - sm = SecurityManager(1) # rejects - old = self.setSecurityManager(sm) - self.assertRaises(Unauthorized, guarded_any, [True, True, False]) - self.setSecurityManager(old) + def test_any_fails(self): + from AccessControl import Unauthorized + sm = SecurityManager(1) # rejects + old = self.setSecurityManager(sm) + self.assertRaises(Unauthorized, guarded_any, [True, True, False]) + self.setSecurityManager(old) def test_min_fails(self): from AccessControl import Unauthorized @@ -417,14 +410,13 @@ def test_min_fails(self): old = self.setSecurityManager(sm) self.assertRaises(Unauthorized, guarded_min, [1, 2, 3]) self.assertRaises(Unauthorized, guarded_min, 1, 2, 3) - if MIN_MAX_TAKE_KEY: - class MyDict(dict): # guard() skips 'dict' values - pass + class MyDict(dict): # guard() skips 'dict' values + pass - self.assertRaises(Unauthorized, guarded_min, - MyDict(x=1), MyDict(x=2), - key=operator.itemgetter('x')) + self.assertRaises(Unauthorized, guarded_min, + MyDict(x=1), MyDict(x=2), + key=operator.itemgetter('x')) self.setSecurityManager(old) def test_max_fails(self): @@ -434,14 +426,12 @@ def test_max_fails(self): old = self.setSecurityManager(sm) self.assertRaises(Unauthorized, guarded_max, [1, 2, 3]) self.assertRaises(Unauthorized, guarded_max, 1, 2, 3) - if MIN_MAX_TAKE_KEY: + class MyDict(dict): # guard() skips 'dict' values + pass - class MyDict(dict): # guard() skips 'dict' values - pass - - self.assertRaises(Unauthorized, guarded_max, - MyDict(x=1), MyDict(x=2), - key=operator.itemgetter('x')) + self.assertRaises(Unauthorized, guarded_max, + MyDict(x=1), MyDict(x=2), + key=operator.itemgetter('x')) self.setSecurityManager(old) def test_enumerate_fails(self): @@ -481,18 +471,17 @@ def test_map_succeeds(self): [4, 4, 4]) self.setSecurityManager(old) - if sys.version_info >= (2, 5): - def test_all_succeeds(self): - sm = SecurityManager() # accepts - old = self.setSecurityManager(sm) - self.assertEqual(guarded_all([True, True, False]), False) - self.setSecurityManager(old) + def test_all_succeeds(self): + sm = SecurityManager() # accepts + old = self.setSecurityManager(sm) + self.assertEqual(guarded_all([True, True, False]), False) + self.setSecurityManager(old) - def test_any_succeeds(self): - sm = SecurityManager() # accepts - old = self.setSecurityManager(sm) - self.assertEquals(guarded_any([True, True, False]), True) - self.setSecurityManager(old) + def test_any_succeeds(self): + sm = SecurityManager() # accepts + old = self.setSecurityManager(sm) + self.assertEquals(guarded_any([True, True, False]), True) + self.setSecurityManager(old) def test_min_succeeds(self): from AccessControl.ZopeGuards import guarded_min @@ -500,14 +489,12 @@ def test_min_succeeds(self): old = self.setSecurityManager(sm) self.assertEqual(guarded_min([1, 2, 3]), 1) self.assertEqual(guarded_min(1, 2, 3), 1) - if MIN_MAX_TAKE_KEY: + class MyDict(dict): # guard() skips 'dict' values + pass - class MyDict(dict): # guard() skips 'dict' values - pass - - self.assertEqual(guarded_min(MyDict(x=1), MyDict(x=2), - key=operator.itemgetter('x')), - {'x': 1}) + self.assertEqual(guarded_min(MyDict(x=1), MyDict(x=2), + key=operator.itemgetter('x')), + {'x': 1}) self.setSecurityManager(old) def test_max_succeeds(self): @@ -516,12 +503,11 @@ def test_max_succeeds(self): old = self.setSecurityManager(sm) self.assertEqual(guarded_max([1, 2, 3]), 3) self.assertEqual(guarded_max(1, 2, 3), 3) - if MIN_MAX_TAKE_KEY: - class MyDict(dict): # guard() skips 'dict' values - pass - self.assertEqual(guarded_max(MyDict(x=1), MyDict(x=2), - key=operator.itemgetter('x')), - {'x': 2}) + class MyDict(dict): # guard() skips 'dict' values + pass + self.assertEqual(guarded_max(MyDict(x=1), MyDict(x=2), + key=operator.itemgetter('x')), + {'x': 2}) self.setSecurityManager(old) def test_enumerate_succeeds(self): @@ -593,8 +579,7 @@ def testListCreation(self): self.assertEquals(l([1, 2, 3]), [1, 2, 3]) x = [3, 2, 1] self.assertEquals(l(x), [3, 2, 1]) - if sys.version_info >= (2, 4): - self.assertEquals(sorted(x), [1, 2, 3]) + self.assertEquals(sorted(x), [1, 2, 3]) class TestRestrictedPythonApply(GuardTestCase): @@ -990,10 +975,9 @@ def test_inplacevar(): """ -if sys.version_info[:2] >= (2, 4): - def test_inplacevar_for_py24(): - """ -protected_inplacevar allows inplce ops on sets: +def test_inplacevar_for_py24(): + """ +protected_inplacevar allows in-place ops on sets: >>> from AccessControl.ZopeGuards import protected_inplacevar >>> s = set((1,2,3,4))