summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CHANGES.txt5
-rw-r--r--pyramid/testing.py2
-rw-r--r--pyramid/tests/test_testing.py4
3 files changed, 11 insertions, 0 deletions
diff --git a/CHANGES.txt b/CHANGES.txt
index 6a26879a3..2c8c6ee46 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -111,6 +111,11 @@ Bug Fixes
files have now been removed. See
https://github.com/Pylons/pyramid/issues/981
+- ``pyramid.testing.DummyResource`` didn't define ``__bool__``, so code under
+ Python 3 would use ``__len__`` to find truthiness; this usually caused an
+ instance of DummyResource to be "falsy" instead of "truthy". See
+ https://github.com/Pylons/pyramid/pull/1032
+
1.4 (2012-12-18)
================
diff --git a/pyramid/testing.py b/pyramid/testing.py
index 06b795f9a..9bd245e4e 100644
--- a/pyramid/testing.py
+++ b/pyramid/testing.py
@@ -222,6 +222,8 @@ class DummyResource:
def __nonzero__(self):
return True
+ __bool__ = __nonzero__
+
def __len__(self):
return len(self.subs)
diff --git a/pyramid/tests/test_testing.py b/pyramid/tests/test_testing.py
index 7f14462a2..da57c6301 100644
--- a/pyramid/tests/test_testing.py
+++ b/pyramid/tests/test_testing.py
@@ -114,6 +114,10 @@ class TestDummyResource(unittest.TestCase):
resource = self._makeOne()
self.assertEqual(resource.__nonzero__(), True)
+ def test_bool(self):
+ resource = self._makeOne()
+ self.assertEqual(resource.__bool__(), True)
+
def test_ctor_with__provides__(self):
resource = self._makeOne(__provides__=IDummy)
self.assertTrue(IDummy.providedBy(resource))