Exemplo n.º 1
0
class OrganizationLogoViewTest(OCLAPITestCase):
    def setUp(self):
        super().setUp()
        self.organization = OrganizationFactory(mnemonic='org-1')
        self.user = UserProfileFactory(organizations=[self.organization])
        self.token = self.user.get_token()

    @patch('core.common.services.S3.upload_base64')
    def test_post_200(self, upload_base64_mock):
        upload_base64_mock.return_value = 'orgs/org-1/logo.png'
        self.assertIsNone(self.organization.logo_url)
        self.assertIsNone(self.organization.logo_path)

        response = self.client.post(
            self.organization.uri + 'logo/',
            dict(base64='base64-data'),
            HTTP_AUTHORIZATION='Token ' + self.token,
            format='json'
        )

        self.assertEqual(response.status_code, 200)
        expected_logo_url = 'http://oclapi2-dev.s3.amazonaws.com/orgs/org-1/logo.png'
        self.assertEqual(response.data['logo_url'].replace('https://', 'http://'), expected_logo_url)
        self.organization.refresh_from_db()
        self.assertEqual(self.organization.logo_url.replace('https://', 'http://'), expected_logo_url)
        self.assertEqual(self.organization.logo_path, 'orgs/org-1/logo.png')
        upload_base64_mock.assert_called_once_with('base64-data', 'orgs/org-1/logo.png', False, True)
Exemplo n.º 2
0
class OrganizationExtraRetrieveUpdateDestroyViewTest(OCLAPITestCase):
    def setUp(self):
        super().setUp()
        self.extras = dict(foo='bar', tao='ching')
        self.organization = OrganizationFactory(extras=self.extras)
        self.user = UserProfileFactory(organizations=[self.organization])
        self.token = self.user.get_token()

    def test_get_200(self):
        response = self.client.get(self.organization.uri + 'extras/foo/',
                                   HTTP_AUTHORIZATION='Token ' + self.token,
                                   format='json')

        self.assertEqual(response.status_code, 200)
        self.assertEqual(response.data, dict(foo='bar'))

    def test_get_404(self):
        response = self.client.get(self.organization.uri + 'extras/bar/',
                                   HTTP_AUTHORIZATION='Token ' + self.token,
                                   format='json')

        self.assertEqual(response.status_code, 404)

        response = self.client.get('/orgs/org-foo/extras/bar/',
                                   HTTP_AUTHORIZATION='Token ' + self.token,
                                   format='json')

        self.assertEqual(response.status_code, 404)

    def test_put_200(self):
        response = self.client.put(self.organization.uri + 'extras/foo/',
                                   dict(foo='foobar'),
                                   HTTP_AUTHORIZATION='Token ' + self.token,
                                   format='json')

        self.assertEqual(response.status_code, 200)
        self.assertEqual(response.data, dict(foo='foobar'))
        self.organization.refresh_from_db()
        self.assertEqual(self.organization.extras,
                         dict(foo='foobar', tao='ching'))

    def test_put_400(self):
        response = self.client.put(self.organization.uri + 'extras/foo/',
                                   dict(tao='te-ching'),
                                   HTTP_AUTHORIZATION='Token ' + self.token,
                                   format='json')

        self.assertEqual(response.status_code, 400)
        self.assertEqual(response.data, ['Must specify foo param in body.'])

    def test_delete(self):
        response = self.client.delete(self.organization.uri + 'extras/foo/',
                                      HTTP_AUTHORIZATION='Token ' + self.token,
                                      format='json')

        self.assertEqual(response.status_code, 204)
        self.organization.refresh_from_db()
        self.assertEqual(self.organization.extras, dict(tao='ching'))

        response = self.client.delete(self.organization.uri + 'extras/foo/',
                                      HTTP_AUTHORIZATION='Token ' + self.token,
                                      format='json')

        self.assertEqual(response.status_code, 404)
        self.organization.refresh_from_db()
        self.assertEqual(self.organization.extras, dict(tao='ching'))