summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOlexander Yermakov <mannavard1611@gmail.com>2016-08-31 11:07:30 +0300
committerTim Graham <timograham@gmail.com>2016-08-31 08:27:37 -0400
commitb7fb608142a0be568bc5dce952de5e6aefc2488c (patch)
tree339eff7e819dcb8c1f59c2781d9cc8ee13b81912
parentb961b51eaf5b57fabcee89ca09a76fdebfd6500d (diff)
Fixed #27154 -- Allowed comparing CallableBool with bitwise or.
Thanks Tim for the review.
-rw-r--r--django/utils/deprecation.py3
-rw-r--r--docs/releases/1.10.1.txt2
-rw-r--r--tests/utils_tests/test_deprecation.py11
3 files changed, 15 insertions, 1 deletions
diff --git a/django/utils/deprecation.py b/django/utils/deprecation.py
index 020f69b032..6fc27a8edd 100644
--- a/django/utils/deprecation.py
+++ b/django/utils/deprecation.py
@@ -116,6 +116,9 @@ class CallableBool:
def __ne__(self, other):
return self.value != other
+ def __or__(self, other):
+ return bool(self.value or other)
+
CallableFalse = CallableBool(False)
CallableTrue = CallableBool(True)
diff --git a/docs/releases/1.10.1.txt b/docs/releases/1.10.1.txt
index 719f536b29..6dbf40de02 100644
--- a/docs/releases/1.10.1.txt
+++ b/docs/releases/1.10.1.txt
@@ -13,7 +13,7 @@ Bugfixes
doesn't return a result (:ticket:`26991`).
* Allowed ``User.is_authenticated`` and ``User.is_anonymous`` properties to be
- compared using ``==`` and ``!=`` (:ticket:`26988`).
+ compared using ``==``, ``!=``, and ``|`` (:ticket:`26988`, :ticket:`27154`).
* Removed the broken ``BaseCommand.usage()`` method which was for
``optparse`` support (:ticket:`27000`).
diff --git a/tests/utils_tests/test_deprecation.py b/tests/utils_tests/test_deprecation.py
index 41627ce1b3..7732dbc62b 100644
--- a/tests/utils_tests/test_deprecation.py
+++ b/tests/utils_tests/test_deprecation.py
@@ -14,3 +14,14 @@ class TestCallableBool(SimpleTestCase):
self.assertEqual(CallableFalse, False)
self.assertFalse(CallableFalse != False) # noqa: E712
self.assertNotEqual(CallableFalse, True)
+
+ def test_or(self):
+ self.assertIs(CallableTrue | CallableTrue, True)
+ self.assertIs(CallableTrue | CallableFalse, True)
+ self.assertIs(CallableFalse | CallableTrue, True)
+ self.assertIs(CallableFalse | CallableFalse, False)
+
+ self.assertIs(CallableTrue | True, True)
+ self.assertIs(CallableTrue | False, True)
+ self.assertIs(CallableFalse | True, True)
+ self.assertFalse(CallableFalse | False, False)