diff --git a/ckanext/scheming/helpers.py b/ckanext/scheming/helpers.py index 25ba3969..18d09daa 100644 --- a/ckanext/scheming/helpers.py +++ b/ckanext/scheming/helpers.py @@ -7,7 +7,7 @@ import six from jinja2 import Environment -from ckantoolkit import config, _ +from ckan.plugins.toolkit import config, _, h from ckanapi import LocalCKAN, NotFound, NotAuthorized @@ -24,7 +24,6 @@ def helper(fn): def lang(): # access this function late in case ckan # is not set up fully when importing this module - from ckantoolkit import h return h.lang() @@ -77,7 +76,6 @@ def scheming_field_choices(field): if 'choices' in field: return field['choices'] if 'choices_helper' in field: - from ckantoolkit import h choices_fn = getattr(h, field['choices_helper']) return choices_fn(field) @@ -409,8 +407,6 @@ def scheming_render_from_string(source, **kwargs): # Temporary solution for rendering defaults and including the CKAN # helpers. The core CKAN lib does not include a string rendering # utility that works across 2.6-2.8. - from ckantoolkit import h - env = Environment(autoescape=True) template = env.from_string( source, diff --git a/ckanext/scheming/logic.py b/ckanext/scheming/logic.py index c3e72589..79e027ad 100644 --- a/ckanext/scheming/logic.py +++ b/ckanext/scheming/logic.py @@ -1,4 +1,4 @@ -from ckantoolkit import get_or_bust, side_effect_free, ObjectNotFound +from ckan.plugins.toolkit import get_or_bust, side_effect_free, ObjectNotFound from ckanext.scheming.helpers import ( scheming_dataset_schemas, scheming_get_dataset_schema, diff --git a/ckanext/scheming/plugins.py b/ckanext/scheming/plugins.py index e947d602..a81aa54f 100644 --- a/ckanext/scheming/plugins.py +++ b/ckanext/scheming/plugins.py @@ -22,7 +22,7 @@ except ImportError: # CKAN <= 2.5 core_helper_functions = None -from ckantoolkit import ( +from ckan.plugins.toolkit import ( DefaultDatasetForm, DefaultGroupForm, DefaultOrganizationForm, diff --git a/ckanext/scheming/tests/test_dataset_display.py b/ckanext/scheming/tests/test_dataset_display.py index f209a432..55694e62 100644 --- a/ckanext/scheming/tests/test_dataset_display.py +++ b/ckanext/scheming/tests/test_dataset_display.py @@ -1,6 +1,6 @@ import pytest import six -from ckantoolkit.tests.factories import Sysadmin, Dataset +from ckan.tests.factories import Sysadmin, Dataset @pytest.mark.usefixtures("clean_db") diff --git a/ckanext/scheming/tests/test_form.py b/ckanext/scheming/tests/test_form.py index b4ae4502..831f0c06 100644 --- a/ckanext/scheming/tests/test_form.py +++ b/ckanext/scheming/tests/test_form.py @@ -1,28 +1,29 @@ import json import pytest -import ckantoolkit from bs4 import BeautifulSoup -from ckantoolkit.tests.factories import Dataset -from ckantoolkit.tests.helpers import call_action +from ckan.plugins.toolkit import check_ckan_version, h + +from ckan.tests.factories import Dataset +from ckan.tests.helpers import call_action @pytest.fixture def sysadmin_env(): try: - from ckantoolkit.tests.factories import SysadminWithToken + from ckan.tests.factories import SysadminWithToken user = SysadminWithToken() return {'Authorization': user['token']} except ImportError: # ckan <= 2.9 - from ckantoolkit.tests.factories import Sysadmin + from ckan.tests.factories import Sysadmin user = Sysadmin() return {"REMOTE_USER": user["name"].encode("ascii")} def _get_package_new_page(app, env, type_='test-schema'): - if ckantoolkit.check_ckan_version(min_version="2.10.0"): + if check_ckan_version(min_version="2.10.0"): return app.get(url="/{0}/new".format(type_), headers=env) else: return app.get(url="/{0}/new".format(type_), extra_environ=env) @@ -30,7 +31,7 @@ def _get_package_new_page(app, env, type_='test-schema'): def _get_package_update_page(app, id, env): - if ckantoolkit.check_ckan_version(min_version="2.10.0"): + if check_ckan_version(min_version="2.10.0"): return app.get(url="/test-schema/edit/{}".format(id), headers=env) else: return app.get(url="/test-schema/edit/{}".format(id), extra_environ=env) @@ -39,7 +40,7 @@ def _get_package_update_page(app, id, env): def _get_resource_new_page(app, id, env): url = '/dataset/{}/resource/new'.format(id) - if ckantoolkit.check_ckan_version(min_version="2.10.0"): + if check_ckan_version(min_version="2.10.0"): return app.get(url, headers=env) else: return app.get(url, extra_environ=env) @@ -48,7 +49,7 @@ def _get_resource_new_page(app, id, env): def _get_resource_update_page(app, id, resource_id, env): url = '/dataset/{}/resource/{}/edit'.format(id, resource_id) - if ckantoolkit.check_ckan_version(min_version="2.10.0"): + if check_ckan_version(min_version="2.10.0"): return app.get(url, headers=env) else: return app.get(url, extra_environ=env) @@ -56,7 +57,7 @@ def _get_resource_update_page(app, id, resource_id, env): def _get_organization_new_page(app, env, type_="organization"): - if ckantoolkit.check_ckan_version(min_version="2.10.0"): + if check_ckan_version(min_version="2.10.0"): return app.get(url="/{0}/new".format(type_), headers=env) else: return app.get(url="/{0}/new".format(type_), extra_environ=env) @@ -64,7 +65,7 @@ def _get_organization_new_page(app, env, type_="organization"): def _get_group_new_page(app, env, type_="group"): - if ckantoolkit.check_ckan_version(min_version="2.10.0"): + if check_ckan_version(min_version="2.10.0"): return app.get(url="/{0}/new".format(type_), headers=env) else: return app.get(url="/{0}/new".format(type_), extra_environ=env) @@ -72,7 +73,7 @@ def _get_group_new_page(app, env, type_="group"): def _get_organization_form(html): # FIXME: add an id to this form - if ckantoolkit.check_ckan_version(min_version="2.11.0a0"): + if check_ckan_version(min_version="2.11.0a0"): form = BeautifulSoup(html).select("form")[2] else: form = BeautifulSoup(html).select("form")[1] @@ -85,7 +86,7 @@ def _get_group_form(html): def _post_data(app, url, data, env): try: - if ckantoolkit.check_ckan_version(min_version="2.11.0a0"): + if check_ckan_version(min_version="2.11.0a0"): app.post(url, headers=env, data=data, follow_redirects=False) else: app.post( @@ -267,7 +268,7 @@ def test_resource_form_create(self, app, sysadmin_env): response = _get_resource_new_page(app, dataset["id"], sysadmin_env) - url = ckantoolkit.h.url_for( + url = h.url_for( "test-schema_resource.new", id=dataset["id"] ) if not url.startswith('/'): # ckan < 2.9 @@ -310,7 +311,7 @@ def test_resource_form_update(self, app, sysadmin_env): "textarea[name=a_resource_json_field]" ).text == json.dumps(value, indent=2) - url = ckantoolkit.h.url_for( + url = h.url_for( "test-schema_resource.edit", id=dataset["id"], resource_id=dataset["resources"][0]["id"], @@ -405,7 +406,7 @@ def test_resource_form_create(self, app, sysadmin_env): response = _get_resource_new_page(app, dataset["id"], sysadmin_env) - url = ckantoolkit.h.url_for( + url = h.url_for( "test-subfields_resource.new", id=dataset["id"] ) if not url.startswith('/'): # ckan < 2.9 @@ -444,7 +445,7 @@ def test_resource_form_update(self, app, sysadmin_env): assert 'selected' in opt7d[1].attrs assert 'selected' not in opt7d[2].attrs # blank subfields - url = ckantoolkit.h.url_for( + url = h.url_for( "test-schema_resource.edit", id=dataset["id"], resource_id=dataset["resources"][0]["id"], diff --git a/ckanext/scheming/tests/test_form_snippets.py b/ckanext/scheming/tests/test_form_snippets.py index 1e464ec7..d82212d8 100644 --- a/ckanext/scheming/tests/test_form_snippets.py +++ b/ckanext/scheming/tests/test_form_snippets.py @@ -9,8 +9,6 @@ # old way from jinja2 import Markup -import ckantoolkit - def render_form_snippet(name, data=None, extra_args=None, errors=None, **kwargs): field = {"field_name": "test", "label": "Test"} diff --git a/ckanext/scheming/tests/test_group_display.py b/ckanext/scheming/tests/test_group_display.py index 35f557d3..bd8a34b6 100644 --- a/ckanext/scheming/tests/test_group_display.py +++ b/ckanext/scheming/tests/test_group_display.py @@ -1,5 +1,5 @@ import pytest -from ckantoolkit.tests.factories import Sysadmin, Organization, Group +from ckan.tests.factories import Sysadmin, Organization, Group @pytest.mark.usefixtures("clean_db") diff --git a/ckanext/scheming/tests/test_validation.py b/ckanext/scheming/tests/test_validation.py index 8e0678c7..a4670090 100644 --- a/ckanext/scheming/tests/test_validation.py +++ b/ckanext/scheming/tests/test_validation.py @@ -15,7 +15,7 @@ SchemingDatasetsPlugin, SchemingGroupsPlugin, ) -from ckantoolkit import get_validator, navl_validate +from ckan.plugins.toolkit import get_validator, navl_validate ignore_missing = get_validator("ignore_missing") not_empty = get_validator("not_empty") diff --git a/ckanext/scheming/validation.py b/ckanext/scheming/validation.py index d91dd13d..15b22807 100644 --- a/ckanext/scheming/validation.py +++ b/ckanext/scheming/validation.py @@ -9,7 +9,7 @@ import ckan.lib.helpers as h from ckan.lib.navl.dictization_functions import convert -from ckantoolkit import ( +from ckan.plugins.toolkit import ( get_validator, UnknownValidator, missing, diff --git a/setup.py b/setup.py index 80b58012..02fc668f 100644 --- a/setup.py +++ b/setup.py @@ -27,7 +27,6 @@ install_requires=[ 'pyyaml', 'ckanapi', - 'ckantoolkit>=0.0.7', 'pytz', 'six', ],