class MappingExtraRetrieveUpdateDestroyViewTest(OCLAPITestCase): def setUp(self): super().setUp() self.extras = dict(foo='bar', tao='ching') self.mapping = MappingFactory(extras=self.extras) self.user = UserProfileFactory(organizations=[self.mapping.parent.organization]) self.token = self.user.get_token() def test_get_200(self): response = self.client.get(self.mapping.uri + 'extras/foo/', 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.mapping.uri + 'extras/bar/', format='json') self.assertEqual(response.status_code, 404) def test_put_200(self): self.assertEqual(self.mapping.versions.count(), 1) self.assertEqual(self.mapping.get_latest_version().extras, self.extras) self.assertEqual(self.mapping.extras, self.extras) response = self.client.put( self.mapping.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.assertEqual(self.mapping.versions.count(), 2) self.assertEqual(self.mapping.get_latest_version().extras, dict(foo='foobar', tao='ching')) self.mapping.refresh_from_db() self.assertEqual(self.mapping.extras, dict(foo='foobar', tao='ching')) def test_put_400(self): self.assertEqual(self.mapping.versions.count(), 1) self.assertEqual(self.mapping.get_latest_version().extras, self.extras) self.assertEqual(self.mapping.extras, self.extras) response = self.client.put( self.mapping.uri + 'extras/foo/', dict(tao='foobar'), HTTP_AUTHORIZATION='Token ' + self.token, format='json' ) self.assertEqual(response.status_code, 400) self.assertEqual(response.data, ['Must specify foo param in body.']) self.assertEqual(self.mapping.versions.count(), 1) self.assertEqual(self.mapping.get_latest_version().extras, self.extras) self.mapping.refresh_from_db() self.assertEqual(self.mapping.extras, self.extras) def test_delete_204(self): self.assertEqual(self.mapping.versions.count(), 1) self.assertEqual(self.mapping.get_latest_version().extras, self.extras) self.assertEqual(self.mapping.extras, self.extras) response = self.client.delete( self.mapping.uri + 'extras/foo/', HTTP_AUTHORIZATION='Token ' + self.token, format='json' ) self.assertEqual(response.status_code, 204) self.assertEqual(self.mapping.versions.count(), 2) self.assertEqual(self.mapping.get_latest_version().extras, dict(tao='ching')) self.assertEqual(self.mapping.versions.first().extras, dict(foo='bar', tao='ching')) self.mapping.refresh_from_db() self.assertEqual(self.mapping.extras, dict(tao='ching'))
class MappingRetrieveUpdateDestroyViewTest(OCLAPITestCase): def setUp(self): super().setUp() self.user = UserProfileFactory() self.token = self.user.get_token() self.source = UserSourceFactory(user=self.user) self.mapping = MappingFactory(parent=self.source) def test_get_200(self): response = self.client.get(self.mapping.uri, format='json') self.assertEqual(response.status_code, 200) self.assertEqual(response.data['uuid'], str(self.mapping.get_latest_version().id)) def test_get_404(self): response = self.client.get( self.source.mappings_url + '123/', format='json' ) self.assertEqual(response.status_code, 404) def test_put_200(self): self.assertEqual(self.mapping.versions.count(), 1) self.assertEqual(self.mapping.get_latest_version().map_type, SAME_AS) response = self.client.put( self.mapping.uri, dict(map_type='narrower than'), HTTP_AUTHORIZATION='Token ' + self.token, ) self.assertEqual(response.status_code, 200) self.assertEqual(response.data['uuid'], str(self.mapping.get_latest_version().id)) self.assertEqual(response.data['map_type'], 'narrower than') self.assertEqual(self.mapping.versions.count(), 2) self.assertEqual(self.mapping.get_latest_version().map_type, 'narrower than') self.mapping.refresh_from_db() self.assertEqual(self.mapping.map_type, 'narrower than') def test_put_400(self): self.assertEqual(self.mapping.versions.count(), 1) self.assertEqual(self.mapping.get_latest_version().map_type, SAME_AS) response = self.client.put( self.mapping.uri, dict(map_type=''), HTTP_AUTHORIZATION='Token ' + self.token, ) self.assertEqual(response.status_code, 400) self.assertEqual( response.data, dict(map_type=[ErrorDetail(string='This field may not be blank.', code='blank')]) ) self.assertEqual(self.mapping.versions.count(), 1) def test_delete_204(self): self.assertEqual(self.mapping.versions.count(), 1) self.assertFalse(self.mapping.get_latest_version().retired) response = self.client.delete( self.mapping.uri, HTTP_AUTHORIZATION='Token ' + self.token, ) self.assertEqual(response.status_code, 204) self.assertEqual(self.mapping.versions.count(), 2) self.assertFalse(self.mapping.versions.first().retired) latest_version = self.mapping.get_latest_version() self.assertTrue(latest_version.retired) self.assertEqual(latest_version.comment, 'Mapping was retired') self.mapping.refresh_from_db() self.assertTrue(self.mapping.retired)