Example #1
0
    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")
Example #2
0
    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")
Example #3
0
    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")
Example #4
0
    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")