Skip to content

Commit 11efbe3

Browse files
committed
Merge branch 'update-to-frictionless-ckan-mapper' into main
2 parents 394961c + ef6ff2c commit 11efbe3

File tree

9 files changed

+208
-188
lines changed

9 files changed

+208
-188
lines changed

.github/workflows/test.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,11 +49,15 @@ jobs:
4949
- name: Install requirements (Python 3)
5050
if: ${{ matrix.ckan-version != '2.7' && matrix.ckan-version != '2.8' && matrix.ckan-version != '2.9-py2'}}
5151
run: |
52+
pip install cython
53+
pip install cchardet
5254
pip install -r requirements.txt
5355
pip install -r dev-requirements.txt
5456
- name: Install requirements (Python 2)
5557
if: ${{ matrix.ckan-version == '2.7' || matrix.ckan-version == '2.8' || matrix.ckan-version == '2.9-py2'}}
5658
run: |
59+
pip install cython
60+
pip install cchardet
5761
pip install -r requirements-py2.txt
5862
pip install -r dev-requirements-py2.txt
5963
- name: Install requirements (common)

ckanext/datapackager/logic/action/create.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
import six
77

88
import ckan.plugins.toolkit as toolkit
9-
from ckan_datapackage_tools import converter
9+
from frictionless_ckan_mapper import frictionless_to_ckan as converter
1010
from werkzeug.datastructures import FileStorage
1111

1212
import datapackage
@@ -31,7 +31,7 @@ def package_create_from_datapackage(context, data_dict):
3131
:py:func:`~ckan.logic.action.get.organization_list` or
3232
:py:func:`~ckan.logic.action.get.organization_list_for_user` for
3333
available values (optional)
34-
:type owner_org: string
34+
:type owner_org: string
3535
'''
3636
url = data_dict.get('url')
3737
upload = data_dict.get('upload')
@@ -41,8 +41,7 @@ def package_create_from_datapackage(context, data_dict):
4141
raise toolkit.ValidationError(msg)
4242

4343
dp = _load_and_validate_datapackage(url=url, upload=upload)
44-
45-
dataset_dict = converter.datapackage_to_dataset(dp)
44+
dataset_dict = converter.package(dp.to_dict())
4645

4746
owner_org = data_dict.get('owner_org')
4847
if owner_org:
@@ -138,6 +137,9 @@ def _create_resources(dataset_id, context, resources):
138137
elif resource.get('path'):
139138
_create_and_upload_local_resource(context, resource)
140139
else:
140+
# TODO: Investigate why in test_controller the resource['url'] is a list
141+
if type(resource['url']) is list:
142+
resource['url'] = resource['url'][0]
141143
toolkit.get_action('resource_create')(context, resource)
142144

143145

ckanext/datapackager/logic/action/get.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import ckan.plugins.toolkit as toolkit
2-
from ckan_datapackage_tools import converter
2+
from frictionless_ckan_mapper import ckan_to_frictionless as converter
33

44

55
@toolkit.side_effect_free
@@ -26,4 +26,4 @@ def package_show_as_datapackage(context, data_dict):
2626
dataset_dict = toolkit.get_action('package_show')(context,
2727
{'id': dataset_id})
2828

29-
return converter.dataset_to_datapackage(dataset_dict)
29+
return converter.dataset(dataset_dict)

ckanext/datapackager/tests/controllers/test_datapackage.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,13 @@ def test_download_datapackage(self, app):
3535
3636
'''
3737
user = factories.Sysadmin()
38-
dataset = factories.Dataset()
38+
dataset = factories.Dataset(
39+
maintainer = "John Smith",
40+
maintainer_email = "jsmith@email.com",
41+
license_id = "cc-zero",
42+
license_title = "Creative Commons CC Zero License (cc-zero)",
43+
license_url = "http://opendefinition.org/licenses/cc-zero/"
44+
)
3945

4046
# Add a resource with a linked-to, not uploaded, data file.
4147
linked_resource = factories.Resource(

0 commit comments

Comments
 (0)