diff options
| author | Olexander Yermakov <mannavard1611@gmail.com> | 2016-08-31 11:07:30 +0300 |
|---|---|---|
| committer | Tim Graham <timograham@gmail.com> | 2016-08-31 08:27:37 -0400 |
| commit | b7fb608142a0be568bc5dce952de5e6aefc2488c (patch) | |
| tree | 339eff7e819dcb8c1f59c2781d9cc8ee13b81912 | |
| parent | b961b51eaf5b57fabcee89ca09a76fdebfd6500d (diff) | |
Fixed #27154 -- Allowed comparing CallableBool with bitwise or.
Thanks Tim for the review.
| -rw-r--r-- | django/utils/deprecation.py | 3 | ||||
| -rw-r--r-- | docs/releases/1.10.1.txt | 2 | ||||
| -rw-r--r-- | tests/utils_tests/test_deprecation.py | 11 |
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) |
