diff --git a/ckan/controllers/api.py b/ckan/controllers/api.py index 464d209e8b5..826a9b6d279 100644 --- a/ckan/controllers/api.py +++ b/ckan/controllers/api.py @@ -3,12 +3,8 @@ import os.path import logging import cgi -import datetime -import glob import urllib -from webob.multidict import UnicodeMultiDict -from paste.util.multidict import MultiDict from six import text_type import ckan.model as model @@ -22,7 +18,7 @@ from ckan.views import identify_user -from ckan.common import _, c, request, response, config +from ckan.common import _, c, request, response log = logging.getLogger(__name__) diff --git a/ckan/lib/search/query.py b/ckan/lib/search/query.py index 68877959982..c469838c7df 100644 --- a/ckan/lib/search/query.py +++ b/ckan/lib/search/query.py @@ -2,17 +2,20 @@ import re import logging - -from ckan.common import config +import six import pysolr + from paste.deploy.converters import asbool -from paste.util.multidict import MultiDict -import six +from werkzeug.datastructures import MultiDict -from ckan.lib.search.common import make_connection, SearchError, SearchQueryError import ckan.logic as logic import ckan.model as model +from ckan.common import config +from ckan.lib.search.common import ( + make_connection, SearchError, SearchQueryError +) + log = logging.getLogger(__name__) _open_licenses = None @@ -211,7 +214,7 @@ def run(self, fields={}, options=None, **kwargs): options.update(kwargs) context = { - 'model':model, + 'model': model, 'session': model.Session, 'search_query': True, } @@ -219,6 +222,7 @@ def run(self, fields={}, options=None, **kwargs): # Transform fields into structure required by the resource_search # action. query = [] + for field, terms in fields.items(): if isinstance(terms, six.string_types): terms = terms.split() diff --git a/ckan/tests/legacy/lib/test_resource_search.py b/ckan/tests/legacy/lib/test_resource_search.py index 92862ac33a5..4e60c4ae4ce 100644 --- a/ckan/tests/legacy/lib/test_resource_search.py +++ b/ckan/tests/legacy/lib/test_resource_search.py @@ -1,7 +1,6 @@ # encoding: utf-8 -from webob.multidict import UnicodeMultiDict, MultiDict -from nose.tools import assert_raises, assert_equal +from nose.tools import assert_raises, assert_equal, assert_set_equal from ckan.tests.legacy import * from ckan.tests.legacy import is_search_supported @@ -76,10 +75,9 @@ def test_02_search_url_2(self): assert set([self.ab]) == urls, urls def test_03_search_url_multiple_words(self): - fields = UnicodeMultiDict(MultiDict(url='e')) - fields.add('url', 'f') + fields = dict([['url', 'e f']]) urls = self.res_search(fields=fields) - assert set([self.ef]) == urls, urls + assert_set_equal({self.ef}, urls) def test_04_search_url_none(self): urls = self.res_search(fields={'url':'nothing'})