def test_create(self): data = ResourceFactory.as_dict() with self.api_user(): response = self.post( url_for('api.resources', dataset=self.dataset), data) self.assert201(response) self.dataset.reload() self.assertEqual(len(self.dataset.resources), 1)
def test_create_filetype_file_unallowed_domain(self): self.app.config['RESOURCES_FILE_ALLOWED_DOMAINS'] = [] data = ResourceFactory.as_dict() data['filetype'] = RESOURCE_FILETYPE_FILE with self.api_user(): response = self.post( url_for('api.resources', dataset=self.dataset), data) self.assert400(response)
def test_create_filetype_file_server_name(self): self.app.config['RESOURCES_FILE_ALLOWED_DOMAINS'] = [] data = ResourceFactory.as_dict() data['filetype'] = RESOURCE_FILETYPE_FILE data['url'] = 'http://%s/resource' % self.app.config['SERVER_NAME'] with self.api_user(): response = self.post( url_for('api.resources', dataset=self.dataset), data) self.assert201(response)
def test_create(self): data = ResourceFactory.as_dict() data['extras'] = {'extra:id': 'id'} with self.api_user(): response = self.post( url_for('api.resources', dataset=self.dataset), data) self.assert201(response) self.dataset.reload() self.assertEqual(len(self.dataset.resources), 1) self.assertEqual(self.dataset.resources[0].extras, {'extra:id': 'id'})
def test_create_filetype_file_allowed_domain(self): self.app.config['RESOURCES_FILE_ALLOWED_DOMAINS'] = [ 'udata.gouv.fr', ] data = ResourceFactory.as_dict() data['filetype'] = RESOURCE_FILETYPE_FILE data['url'] = 'http://udata.gouv.fr/resource' with self.api_user(): response = self.post( url_for('api.resources', dataset=self.dataset), data) self.assert201(response)
def test_create_normalize_format(self): _format = ' FORMAT ' data = ResourceFactory.as_dict() data['format'] = _format with self.api_user(): response = self.post( url_for('api.resources', dataset=self.dataset), data) self.assert201(response) self.dataset.reload() self.assertEqual(self.dataset.resources[0].format, _format.strip().lower())
def test_dataset_api_create_with_resources(self): '''It should create a dataset with resources from the API''' data = DatasetFactory.as_dict() data['resources'] = [ResourceFactory.as_dict() for _ in range(3)] with self.api_user(): response = self.post(url_for('api.datasets'), data) self.assert201(response) self.assertEqual(Dataset.objects.count(), 1) dataset = Dataset.objects.first() self.assertEqual(len(dataset.resources), 3)
def test_dataset_api_update_with_resources(self): '''It should update a dataset from the API with resources parameters''' user = self.login() dataset = VisibleDatasetFactory(owner=user) initial_length = len(dataset.resources) data = dataset.to_dict() data['resources'].append(ResourceFactory.as_dict()) response = self.put(url_for('api.dataset', dataset=dataset), data) self.assert200(response) self.assertEqual(Dataset.objects.count(), 1) dataset = Dataset.objects.first() self.assertEqual(len(dataset.resources), initial_length + 1)
def test_dataset_api_create_with_resources_dict(self): """Create a dataset w/ resources in a dict instead of list, should fail """ data = DatasetFactory.as_dict() data['resources'] = { k: v for k, v in enumerate( [ResourceFactory.as_dict() for _ in range(3)]) } with self.api_user(): response = self.post(url_for('api.datasets'), data) self.assert400(response)
def test_dataset_api_update_new_resource_with_extras(self): '''It should update a dataset with a new resource with extras''' user = self.login() dataset = VisibleDatasetFactory(owner=user) data = dataset.to_dict() resource_data = ResourceFactory.as_dict() resource_data['extras'] = {'extra:id': 'id'} data['resources'].append(resource_data) response = self.put(url_for('api.dataset', dataset=dataset), data) self.assert200(response) dataset.reload() resource = (r for r in dataset.resources if r.title == resource_data['title']).next() self.assertEqual(resource.extras, {'extra:id': 'id'})