def test_get_role_queryset_non_admin_username(self): """Test get_role_queryset as a non-admin supplying a username.""" roles = self._setup_roles_for_role_username_queryset_tests() user = Mock(spec=User, admin=False, username="******") req = Mock(user=user, method="GET", query_params={"username": "******"}) with self.assertRaises(PermissionDenied): get_role_queryset(req)
def test_get_role_queryset_admin(self): """Test get_role_queryset as an admin.""" self._create_roles() user = Mock(spec=User, admin=True) req = Mock(user=user, query_params={}) queryset = get_role_queryset(req) self.assertEquals(queryset.count(), 5)
def test_get_role_queryset_put_none(self): """Test get_role_queryset as a user with no access.""" self._create_roles() access = {"role": {"write": []}} user = Mock(spec=User, admin=False, access=access) req = Mock(user=user, method="PUT", query_params={}) queryset = get_role_queryset(req) self.assertEquals(queryset.count(), 0)
def test_get_role_queryset_put_some(self): """Test get_role_queryset as a user with one role access.""" self._create_roles() access = {"role": {"write": [Role.objects.first().uuid]}} user = Mock(spec=User, admin=False, access=access) req = Mock(user=user, method="PUT", query_params={}) queryset = get_role_queryset(req) self.assertEquals(queryset.count(), 1)
def test_get_role_queryset_get_all(self): """Test get_role_queryset as a user with all access.""" self._create_roles() access = {"role": {"read": ["*"]}} user = Mock(spec=User, admin=False, access=access) req = Mock(user=user, method="GET", query_params={}) queryset = get_role_queryset(req) self.assertEquals(queryset.count(), 5)
def test_get_role_queryset_post_all(self): """Test get_role_queryset as a user with all access.""" self._create_roles() access = {'role': {'write': ['*']}} user = Mock(spec=User, admin=False, access=access) req = Mock(user=user, method='PUT', query_params={}) queryset = get_role_queryset(req) self.assertEquals(queryset.count(), 5)
def test_get_role_queryset_admin_username_different(self): """Test get_role_queryset as an admin supplying a different username.""" roles = self._setup_roles_for_role_username_queryset_tests() user = Mock(spec=User, admin=True, account="00001", username="******") req = Mock(user=user, method="GET", query_params={"username": "******"}) queryset = get_role_queryset(req) self.assertEquals(list(queryset), [roles.first()]) self.assertEquals(queryset.count(), 1)
def test_get_role_queryset_admin_username_different(self): """Test get_role_queryset as an admin supplying a different username.""" roles = self._setup_roles_for_role_username_queryset_tests() user = Mock(spec=User, admin=True, account='00001', username='******') req = Mock(user=user, method='GET', query_params={'username': '******'}) queryset = get_role_queryset(req) self.assertEquals(list(queryset), [roles.first()]) self.assertEquals(queryset.count(), 1)
def test_get_role_queryset_non_admin_username_different(self): """Test get_role_queryset as a non-admin supplying a different username.""" roles = self._setup_roles_for_role_username_queryset_tests() user = Mock(spec=User, admin=False, username="******") req = Mock(user=user, method="GET", query_params={"username": "******"}) queryset = get_role_queryset(req) self.assertEquals(list(queryset), []) self.assertEquals(queryset.count(), 0)
def test_get_role_queryset_admin_username(self): """Test get_role_queryset as an admin supplying a username.""" roles = self._setup_roles_for_role_username_queryset_tests() user = Mock(spec=User, admin=True, account="00001", username="******") req = Mock(user=user, method="GET", query_params={"username": "******"}) queryset = get_role_queryset(req) role = queryset.last() self.assertEquals(list(queryset), [roles.first()]) self.assertEquals(queryset.count(), 1) self.assertTrue(hasattr(role, "accessCount")) self.assertTrue(hasattr(role, "policyCount"))
def test_get_role_queryset_admin_username(self): """Test get_role_queryset as an admin supplying a username.""" roles = self._setup_roles_for_role_username_queryset_tests() user = Mock(spec=User, admin=True, account='00001', username='******') req = Mock(user=user, method='GET', query_params={'username': '******'}) queryset = get_role_queryset(req) role = queryset.last() self.assertEquals(list(queryset), [roles.first()]) self.assertEquals(queryset.count(), 1) self.assertTrue(hasattr(role, 'accessCount')) self.assertTrue(hasattr(role, 'policyCount'))
def test_get_role_queryset_principal_scope(self): """Test get_role_queryset with principal scope.""" roles = self._setup_roles_for_role_username_queryset_tests() user = Mock(spec=User, admin=True, account="00001", username="******") req = Mock(user=user, method="GET", query_params={ SCOPE_KEY: PRINCIPAL_SCOPE, "username": "******" }) queryset = get_role_queryset(req) role = queryset.last() self.assertEquals(list(queryset), [roles.first()]) self.assertEquals(queryset.count(), 1) self.assertTrue(hasattr(role, "accessCount")) self.assertTrue(hasattr(role, "policyCount"))
def test_get_role_queryset_principal_scope(self): """Test get_role_queryset with principal scope.""" roles = self._setup_roles_for_role_username_queryset_tests() user = Mock(spec=User, admin=True, account='00001', username='******') req = Mock(user=user, method='GET', query_params={ SCOPE_KEY: PRINCIPAL_SCOPE, 'username': '******' }) queryset = get_role_queryset(req) role = queryset.last() self.assertEquals(list(queryset), [roles.first()]) self.assertEquals(queryset.count(), 1) self.assertTrue(hasattr(role, 'accessCount')) self.assertTrue(hasattr(role, 'policyCount'))
def get_queryset(self): """Obtain queryset for requesting user based on access.""" return get_role_queryset(self.request)