From 2dc38ce516a5f0f54e2d011e7e305811beb44d26 Mon Sep 17 00:00:00 2001
From: Tres Seaver <tseaver@palladion.com>
Date: Mon, 05 Jun 2017 23:18:05 +0200
Subject: [PATCH] Ensure that instances of 'AllPermissionsList' are iterable.

---
 pyramid/tests/test_security.py |   24 ++++++++++++++++++++++--
 pyramid/security.py            |    5 ++++-
 2 files changed, 26 insertions(+), 3 deletions(-)

diff --git a/pyramid/security.py b/pyramid/security.py
index 82e6b73..035f09f 100644
--- a/pyramid/security.py
+++ b/pyramid/security.py
@@ -21,10 +21,13 @@
 
 class AllPermissionsList(object):
     """ Stand in 'permission list' to represent all permissions """
+
     def __iter__(self):
-        return ()
+        return iter(())
+
     def __contains__(self, other):
         return True
+
     def __eq__(self, other):
         return isinstance(other, self.__class__)
 
diff --git a/pyramid/tests/test_security.py b/pyramid/tests/test_security.py
index 6d75ac8..5561a05 100644
--- a/pyramid/tests/test_security.py
+++ b/pyramid/tests/test_security.py
@@ -16,12 +16,32 @@
     def _makeOne(self):
         return self._getTargetClass()()
 
-    def test_it(self):
+    def test_equality_w_self(self):
         thing = self._makeOne()
         self.assertTrue(thing.__eq__(thing))
-        self.assertEqual(thing.__iter__(), ())
+
+    def test_equality_w_other_instances_of_class(self):
+        thing = self._makeOne()
+        other = self._makeOne()
+        self.assertTrue(thing.__eq__(other))
+
+    def test_equality_miss(self):
+        thing = self._makeOne()
+        other = object()
+        self.assertFalse(thing.__eq__(other))
+
+    def test_contains_w_string(self):
+        thing = self._makeOne()
         self.assertTrue('anything' in thing)
 
+    def test_contains_w_object(self):
+        thing = self._makeOne()
+        self.assertTrue(object() in thing)
+
+    def test_iterable(self):
+        thing = self._makeOne()
+        self.assertEqual(list(thing), [])
+
     def test_singleton(self):
         from pyramid.security import ALL_PERMISSIONS
         self.assertEqual(ALL_PERMISSIONS.__class__, self._getTargetClass())

--
Gitblit v1.9.3