Select Git revision
run_helm_test.sh
-
Jan Zickermann authoredJan Zickermann authored
test_search.py 5.82 KiB
import ckanext.odsh.search as search
import unittest
class Test_before_dataset_search(unittest.TestCase):
def setUp(self):
self.search_params_before_test = {
'extras': {},
'facet.field': ['organization', 'groups'],
'fq': 'organization:"test-organisation" groups:"gove" +dataset_type:dataset',
'include_private': True,
'q': '',
'rows': 20,
'sort': 'score desc, metadata_modified desc',
'start': 0
}
self.search_params_with_facet_mincount = self.search_params_before_test.copy()
self.search_params_with_facet_mincount.update({'facet.mincount': 0})
def test_it_solely_adds_facet_mincount_to_dict_if_no_extras(self):
# arange
search_params = self.search_params_before_test.copy()
# act
search.before_dataset_search(search_params)
# assert
search_params_expected = self.search_params_with_facet_mincount.copy()
assert search_params == search_params_expected
def test_it_adds_fq_if_empty_range(self):
# arange
search_params = self.search_params_before_test.copy()
extras = {'ext_enddate': '2019-08-01', 'ext_startdate': '2019-08-02'}
search_params.update({'extras': extras})
search_params_expected = self.search_params_with_facet_mincount.copy()
search_params_expected.update({'extras': extras})
search_params_expected.update({
'fq': (
'organization:"test-organisation" groups:"gove" '
'+dataset_type:dataset (+extras_temporal_start:[2019-08-02T00:00:00Z TO 2019-08-01T00:00:00Z] '
'OR +extras_temporal_end:[2019-08-02T00:00:00Z TO 2019-08-01T00:00:00Z] OR '
'((*:* NOT extras_temporal_end:[* TO *]) AND extras_temporal_start:[* TO 2019-08-01T00:00:00Z]))'
)
})
# act
search.before_dataset_search(search_params)
# assert
assert search_params == search_params_expected
def test_it_solely_adds_facet_mincount_to_dict_if_wrong_date_format_in_extras(self):
# arange
search_params = self.search_params_before_test.copy()
extras = {'ext_enddate': 'some_date', 'ext_startdate': 'some_date'}
search_params.update({'extras': extras})
search_params_expected = self.search_params_with_facet_mincount.copy()
search_params_expected.update({'extras': extras})
# act
search.before_dataset_search(search_params)
# assert
assert search_params == search_params_expected
def test_it_adds_fq_if_enclosing_range(self):
# arange
search_params = self.search_params_before_test.copy()
extras = {'ext_enddate': '2019-08-02', 'ext_startdate': '2019-08-01'}
search_params.update({'extras': extras})
search_params_expected = self.search_params_with_facet_mincount.copy()
search_params_expected.update({'extras': extras})
search_params_expected.update({
'fq': (
'organization:"test-organisation" groups:"gove" '
'+dataset_type:dataset '
'(+extras_temporal_start:[2019-08-01T00:00:00Z TO 2019-08-02T00:00:00Z] '
'OR +extras_temporal_end:[2019-08-01T00:00:00Z TO 2019-08-02T00:00:00Z] '
'OR (extras_temporal_start:[* TO 2019-08-01T00:00:00Z] AND '
'extras_temporal_end:[2019-08-02T00:00:00Z TO *]) OR '
'((*:* NOT extras_temporal_end:[* TO *]) AND '
'extras_temporal_start:[* TO 2019-08-02T00:00:00Z]))'
)
})
# act
search.before_dataset_search(search_params)
# assert
assert search_params == search_params_expected
def test_it_adds_fq_if_start_only(self):
# arange
search_params = self.search_params_before_test.copy()
extras = {'ext_startdate': '2019-08-01'}
search_params.update({'extras': extras})
search_params_expected = self.search_params_with_facet_mincount.copy()
search_params_expected.update({'extras': extras})
search_params_expected.update({
'fq': (
'organization:"test-organisation" groups:"gove" '
'+dataset_type:dataset '
'(+extras_temporal_start:[2019-08-01T00:00:00Z TO *] '
'OR +extras_temporal_end:[2019-08-01T00:00:00Z TO *] '
'OR (*:* NOT extras_temporal_end:[* TO *]))'
)
})
# act
search.before_dataset_search(search_params)
# assert
assert search_params == search_params_expected
def test_it_adds_fq_if_end_only(self):
# arange
search_params = self.search_params_before_test.copy()
extras = {'ext_enddate': '2019-08-02'}
search_params.update({'extras': extras})
search_params_expected = self.search_params_with_facet_mincount.copy()
search_params_expected.update({'extras': extras})
search_params_expected.update({
'fq': (
'organization:"test-organisation" groups:"gove" '
'+dataset_type:dataset '
'(+extras_temporal_start:[* TO 2019-08-02T00:00:00Z] OR '
'+extras_temporal_end:[* TO 2019-08-02T00:00:00Z] '
'OR ((*:* NOT extras_temporal_end:[* TO *]) '
'AND extras_temporal_start:[* TO 2019-08-02T00:00:00Z]))'
)
})
# act
search.before_dataset_search(search_params)
# assert
assert search_params == search_params_expected
def test_it_returns_search_params(self):
# arange
search_params = self.search_params_before_test.copy()
# act
return_value = search.before_dataset_search(search_params)
# assert
assert search_params == return_value