async def test_column_permissions_update_create(self): """ Tests create and update requests against columns with permission levels 10 and 20 """ objective = await self._create_objective(self.super_token, outcome="under achieved") self.assertTrue('deadline' in objective) self.assertTrue('outcome' in objective) request = await self.client.patch( self.api_url('objectives/%s' % objective['id']), json={ 'deadline': deadline(20), 'outcome': 'exceeded' }) data = self.json(request.response, 200) self.assertTrue('id' in data) self.assertTrue('outcome' in data) self.assertEqual(data['outcome'], "exceeded") self.assertFalse('deadline' in data) request = await self.client.get( self.api_url('objectives/%s' % objective['id']), token=self.super_token ) data = self.json(request.response, 200) self.assertTrue('id' in data) self.assertTrue('subject' in data) self.assertTrue('outcome' in data) self.assertTrue('deadline' in data) self.assertEqual(data['deadline'], deadline(10)) self.assertEqual(data['outcome'], "exceeded")
async def test_column_permissions_update_create(self): """ Tests create and update requests against columns with permission levels 10 and 20 """ objective = await self._create_objective(self.super_token, outcome="under achieved") self.assertTrue('deadline' in objective) self.assertTrue('outcome' in objective) request = await self.client.patch(self.api_url('objectives/%s' % objective['id']), json={ 'deadline': deadline(20), 'outcome': 'exceeded' }) data = self.json(request.response, 200) self.assertTrue('id' in data) self.assertTrue('outcome' in data) self.assertEqual(data['outcome'], "exceeded") self.assertFalse('deadline' in data) request = await self.client.get(self.api_url('objectives/%s' % objective['id']), token=self.super_token) data = self.json(request.response, 200) self.assertTrue('id' in data) self.assertTrue('subject' in data) self.assertTrue('outcome' in data) self.assertTrue('deadline' in data) self.assertEqual(data['deadline'], deadline(10)) self.assertEqual(data['outcome'], "exceeded")
async def test_column_permissions_policy(self): """Checks that a custom policy works on a regular user """ objective = await self._create_objective(self.pippo_token) request = await self.client.get( self.api_url('objectives/%s' % objective['id']), token=self.pippo_token ) data = self.json(request.response, 200) self.assertTrue('id' in data) self.assertTrue('subject' in data) request = await self.client.get( self.api_url('objectives'), token=self.pippo_token ) data = self.json(request.response, 200) self.assertTrue('result' in data) for item in data['result']: self.assertTrue('id' in item) self.assertTrue('subject' in item) request = await self.client.get( self.api_url('objectives/metadata'), token=self.pippo_token ) data = self.json(request.response, 200) self.assertTrue( any(field['name'] == 'deadline' for field in data['columns']) ) # Patch the model request = await self.client.patch( self.api_url('objectives/%s' % objective['id']), token=self.pippo_token, json={'subject': 'subject changed', 'deadline': deadline(20)} ) data = self.json(request.response, 200) self.assertTrue('id' in data) self.assertTrue('deadline' in data) self.assertEqual(data['deadline'], deadline(20)) self.assertEqual(data['subject'], "subject changed")
async def test_column_permissions_policy(self): """Checks that a custom policy works on a regular user """ objective = await self._create_objective(self.pippo_token) request = await self.client.get(self.api_url('objectives/%s' % objective['id']), token=self.pippo_token) data = self.json(request.response, 200) self.assertTrue('id' in data) self.assertTrue('subject' in data) request = await self.client.get(self.api_url('objectives'), token=self.pippo_token) data = self.json(request.response, 200) self.assertTrue('result' in data) for item in data['result']: self.assertTrue('id' in item) self.assertTrue('subject' in item) request = await self.client.get(self.api_url('objectives/metadata'), token=self.pippo_token) data = self.json(request.response, 200) self.assertTrue( any(field['name'] == 'deadline' for field in data['columns'])) # Patch the model request = await self.client.patch(self.api_url('objectives/%s' % objective['id']), token=self.pippo_token, json={ 'subject': 'subject changed', 'deadline': deadline(20) }) data = self.json(request.response, 200) self.assertTrue('id' in data) self.assertTrue('deadline' in data) self.assertEqual(data['deadline'], deadline(20)) self.assertEqual(data['subject'], "subject changed")