def test_get_policy_queryset_bad_scope(self): """Test get_policy_queryset with a bad scope.""" self._create_policies() access = {"policy": {"read": ["*"]}} user = Mock(spec=User, admin=False, access=access) req = Mock(user=user, method="GET", query_params={SCOPE_KEY: "bad"}) with self.assertRaises(serializers.ValidationError): get_policy_queryset(req)
def test_get_policy_queryset_bad_scope(self): """Test get_policy_queryset with a bad scope.""" self._create_policies() access = {'policy': {'read': ['*']}} user = Mock(spec=User, admin=False, access=access) req = Mock(user=user, method='GET', query_params={SCOPE_KEY: 'bad'}) with self.assertRaises(serializers.ValidationError): get_policy_queryset(req)
def test_get_policy_queryset_admin(self): """Test get_policy_queryset as an admin.""" self._create_policies() user = Mock(spec=User, admin=True) req = Mock(user=user, query_params={}) queryset = get_policy_queryset(req) self.assertEquals(queryset.count(), 5)
def test_get_policy_queryset_put_none(self): """Test get_policy_queryset as a user with no access.""" self._create_policies() access = {"policy": {"write": []}} user = Mock(spec=User, admin=False, access=access) req = Mock(user=user, method="PUT", query_params={}) queryset = get_policy_queryset(req) self.assertEquals(queryset.count(), 0)
def test_get_policy_queryset_put_some(self): """Test get_policy_queryset as a user with one role access.""" self._create_policies() access = {"policy": {"write": [Policy.objects.first().uuid]}} user = Mock(spec=User, admin=False, access=access) req = Mock(user=user, method="PUT", query_params={}) queryset = get_policy_queryset(req) self.assertEquals(queryset.count(), 1)
def test_get_policy_queryset_get_all(self): """Test get_policy_queryset as a user with all access.""" self._create_policies() access = {"policy": {"read": ["*"]}} user = Mock(spec=User, admin=False, access=access) req = Mock(user=user, method="GET", query_params={}) queryset = get_policy_queryset(req) self.assertEquals(queryset.count(), 5)
def test_get_policy_queryset_post_all(self): """Test get_policy_queryset as a user with all access.""" self._create_policies() access = {'policy': {'write': ['*']}} user = Mock(spec=User, admin=False, access=access) req = Mock(user=user, method='PUT', query_params={}) queryset = get_policy_queryset(req) self.assertEquals(queryset.count(), 5)
def test_get_policy_queryset_scope_put_none(self): """Test get_policy_queryset for a principal scope with put.""" self._create_policies() access = {"policy": {"write": []}} user = Mock(spec=User, admin=False, access=access) req = Mock(user=user, method="PUT", query_params={SCOPE_KEY: PRINCIPAL_SCOPE}) queryset = get_policy_queryset(req) self.assertEquals(queryset.count(), 0)
def get_queryset(self): """Obtain queryset for requesting user based on access.""" return get_policy_queryset(self.request)