Esempio n. 1
0
 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)
Esempio n. 2
0
 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)
Esempio n. 3
0
 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)
Esempio n. 4
0
 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'})
Esempio n. 5
0
 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)
Esempio n. 6
0
 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())
Esempio n. 7
0
    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)
Esempio n. 8
0
    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)
Esempio n. 9
0
 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)
Esempio n. 10
0
 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'})