summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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)