From 5d463d444410b694266bc06e01096098ba63d2b2 Mon Sep 17 00:00:00 2001 From: Kevin Engle <5172592+Dog@users.noreply.github.com> Date: Mon, 18 May 2020 11:31:00 -0700 Subject: [PATCH] Fix test for new object permission resolution --- rest_framework/permissions.py | 9 ++++----- tests/test_permissions.py | 2 +- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/rest_framework/permissions.py b/rest_framework/permissions.py index a906fd089..0d1b658cd 100644 --- a/rest_framework/permissions.py +++ b/rest_framework/permissions.py @@ -77,11 +77,10 @@ class OR: ) def has_object_permission(self, request, view, obj): - return ( - (self.op1.has_permission(request, view) and self.op1.has_object_permission(request, view, obj)) - or - (self.op2.has_permission(request, view) and self.op2.has_object_permission(request, view, obj)) - ) + op1 = self.op1.has_permission(request, view) and self.op1.has_object_permission(request, view, obj) + if op1: + return op1 + return self.op2.has_permission(request, view) and self.op2.has_object_permission(request, view, obj) class NOT: diff --git a/tests/test_permissions.py b/tests/test_permissions.py index 19aba56a3..6049e94f1 100644 --- a/tests/test_permissions.py +++ b/tests/test_permissions.py @@ -648,7 +648,7 @@ class PermissionsCompositionTests(TestCase): mock_deny.assert_not_called() with mock.patch.object(permissions.AllowAny, 'has_object_permission', return_value=True) as mock_allow: - with mock.patch.object(permissions.IsAuthenticated, 'has_object_permission', return_value=False) as mock_deny: + with mock.patch.object(permissions.IsAuthenticated, 'has_permission', return_value=False) as mock_deny: composed_perm = (permissions.IsAuthenticated | permissions.AllowAny) hasperm = composed_perm().has_object_permission(request, None, None) assert hasperm is True