Exemple #1
0
    def test_create_dataset_fields_added(self, create_from_dict):
        """ Fields are added to the dict before validation if they don't exist. """
        self.temporary_login(self.test_user_id)

        exception_error = "data is not valid"
        create_from_dict.side_effect = dataset_validator.ValidationException(exception_error)
        submit = json.dumps({"a": "thing"})
        resp = self.client.post("/api/v1/datasets/", data=submit, content_type="application/json")
        self.assertEqual(resp.status_code, 400)
        # The `public` and `classes` fields are added
        create_from_dict.assert_called_once_with({"a": "thing", "public": True, "classes": []}, self.test_user["id"])
Exemple #2
0
    def test_create_dataset_validation_error(self, create_from_dict):
        """ return an error if create_from_dict returns a validation error """
        self.temporary_login(self.test_user_id)

        exception_error = "data is not valid"
        create_from_dict.side_effect = dataset_validator.ValidationException(exception_error)
        submit = json.dumps({"a": "thing"})
        resp = self.client.post("/api/v1/datasets/", data=submit, content_type="application/json")
        self.assertEqual(resp.status_code, 400)
        expected = {"message": exception_error}
        self.assertEqual(resp.json, expected)
Exemple #3
0
    def test_import_csv_invalid_data(self, mock_create_from_dict):
        """If the provided dataset file is invalid, show an error"""
        mock_create_from_dict.side_effect = dataset_validator.ValidationException('invalid dataset')

        self.temporary_login(self.test_user_id)
        test_csv_file = os.path.join(TEST_DATA_PATH, 'test_dataset.csv')

        with open(test_csv_file) as csv_data:
            resp = self.client.post(url_for('datasets.import_csv'),
                                    data={'name': 'dataset', 'file': (csv_data, 'dataset.csv')},
                                    content_type='multipart/form-data')
            # Validation fails, we return an http400 error
            self.assert400(resp)
            e = self.get_context_variable('error')
            self.assertEqual(e.description, 'invalid dataset')