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)
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'))