Esempio n. 1
0
class UpdateDefaultParamsAPITests(unittest.TestCase):

    DATASET_NAME = 'owner:datasetid'
    DEFAULT_PARAMS = {'param1': True, 'param2': 'hello'}

    def setUp(self):
        # Clean index
        self.es = Elasticsearch(hosts=[LOCAL_ELASTICSEARCH])
        try:
            self.es.indices.delete(index=USERS_INDEX_NAME)
            self.es.indices.delete(index=PACKAGES_INDEX_NAME)
        except NotFoundError:
            pass
        self.es.indices.create(USERS_INDEX_NAME)
        time.sleep(1)

        self.pr = PackageRegistry(es_connection_string=LOCAL_ELASTICSEARCH,
                                  index_name=PACKAGES_INDEX_NAME)
        self.pr.save_model(self.DATASET_NAME, 'datapackage_url', {}, {},
                           'dataset', 'author', '', True)

    def test__initial_value__none(self):
        pkg = self.pr.get_package(self.DATASET_NAME)
        assert (pkg.get('defaultParams') is None)

    def test__update_params__empty_params(self):
        module.update_params('owner:datasetid', token, {})
        pkg = self.pr.get_package(self.DATASET_NAME)
        assert (pkg.get('defaultParams') == {})

    def test__update_params__with_value(self):
        module.update_params('owner:datasetid', token, self.DEFAULT_PARAMS)
        pkg = self.pr.get_package(self.DATASET_NAME)
        assert (pkg.get('defaultParams') == self.DEFAULT_PARAMS)

    def test__update_params__bad_owner(self):
        module.update_params('badowner:datasetid', token, self.DEFAULT_PARAMS)
        pkg = self.pr.get_package(self.DATASET_NAME)
        assert (pkg.get('defaultParams') is None)

    def test__update_params__bad_package_id(self):
        module.update_params('owner:baddatasetid', token, self.DEFAULT_PARAMS)
        pkg = self.pr.get_package(self.DATASET_NAME)
        assert (pkg.get('defaultParams') is None)
class PublishAPITests(unittest.TestCase):

    def setUp(self):
        # Clean index
        self.es = Elasticsearch(hosts=[LOCAL_ELASTICSEARCH])
        try:
            self.es.indices.delete(index='users')
            self.es.indices.delete(index='packages')
        except NotFoundError:
            pass
        self.es.indices.create('users')
        time.sleep(1)

        self.pr = PackageRegistry(es_connection_string=LOCAL_ELASTICSEARCH)
        self.pr.save_model('name', 'datapackage_url', {}, {}, 'dataset', 'author', '', True)

    def test__initial_value__none(self):
        pkg = self.pr.get_package('name')
        assert(pkg.get('private') is None)

    def test__toggle__published(self):
        module.toggle_publish('name', token, toggle=True)
        pkg = self.pr.get_package('name')
        assert(pkg.get('private') is True)

    def test__toggle_twice__not_published(self):
        module.toggle_publish('name', token, toggle=True)
        module.toggle_publish('name', token, toggle=True)
        pkg = self.pr.get_package('name')
        assert(pkg.get('private') is False)

    def test__force_publish_initial__correct(self):
        module.toggle_publish('name', token, publish=True)
        pkg = self.pr.get_package('name')
        assert(pkg.get('private') is False)

    def test__force_publish__correct(self):
        module.toggle_publish('name', token, toggle=True)
        module.toggle_publish('name', token, publish=True)
        pkg = self.pr.get_package('name')
        assert(pkg.get('private') is False)

    def test__force_unpublish_initial__correct(self):
        module.toggle_publish('name', token, publish=False)
        pkg = self.pr.get_package('name')
        assert(pkg.get('private') is True)

    def test__force_unpublish__correct(self):
        module.toggle_publish('name', token, toggle=True)
        module.toggle_publish('name', token, toggle=True)
        module.toggle_publish('name', token, publish=False)
        pkg = self.pr.get_package('name')
        assert(pkg.get('private') is True)
Esempio n. 3
0
class PublishDeleteAPITests(unittest.TestCase):

    DATASET_NAME = 'owner:datasetid'

    def setUp(self):
        # Clean index
        self.es = Elasticsearch(hosts=[LOCAL_ELASTICSEARCH])
        try:
            self.es.indices.delete(index='users')
            self.es.indices.delete(index='packages')
        except NotFoundError:
            pass
        self.es.indices.create('users')
        time.sleep(1)

        self.pr = PackageRegistry(es_connection_string=LOCAL_ELASTICSEARCH)
        self.pr.save_model(self.DATASET_NAME, 'datapackage_url', {}, {},
                           'dataset', 'author', '', True)

    def test__initial_value__none(self):
        pkg = self.pr.get_package(self.DATASET_NAME)
        assert (pkg.get('private') is None)

    def test__delete(self):
        ret = module.delete_package(self.DATASET_NAME, token)
        assert (ret['success'] is True)
        try:
            pkg = self.pr.get_package(self.DATASET_NAME)
            assert (pkg is None)
        except KeyError:
            pass
        ret = module.delete_package(self.DATASET_NAME, token)
        assert (ret['success'] is False)

    def test__toggle__published(self):
        module.toggle_publish(self.DATASET_NAME, token, toggle=True)
        pkg = self.pr.get_package(self.DATASET_NAME)
        assert (pkg.get('private') is True)

    def test__toggle_twice__not_published(self):
        module.toggle_publish(self.DATASET_NAME, token, toggle=True)
        module.toggle_publish(self.DATASET_NAME, token, toggle=True)
        pkg = self.pr.get_package(self.DATASET_NAME)
        assert (pkg.get('private') is False)

    def test__force_publish_initial__correct(self):
        module.toggle_publish(self.DATASET_NAME, token, publish=True)
        pkg = self.pr.get_package(self.DATASET_NAME)
        assert (pkg.get('private') is False)

    def test__force_publish__correct(self):
        module.toggle_publish(self.DATASET_NAME, token, toggle=True)
        module.toggle_publish(self.DATASET_NAME, token, publish=True)
        pkg = self.pr.get_package(self.DATASET_NAME)
        assert (pkg.get('private') is False)

    def test__force_unpublish_initial__correct(self):
        module.toggle_publish(self.DATASET_NAME, token, publish=False)
        pkg = self.pr.get_package(self.DATASET_NAME)
        assert (pkg.get('private') is True)

    def test__force_unpublish__correct(self):
        module.toggle_publish(self.DATASET_NAME, token, toggle=True)
        module.toggle_publish(self.DATASET_NAME, token, toggle=True)
        module.toggle_publish(self.DATASET_NAME, token, publish=False)
        pkg = self.pr.get_package(self.DATASET_NAME)
        assert (pkg.get('private') is True)