Skip to content
Snippets Groups Projects
Select Git revision
  • e8e9f843d9cdab447ebe6dcd8249c2c50523a350
  • main default protected
  • KOP-3351-open-source-files
  • adjust-certificate
  • OZG-8085-ci-components-poc
  • release
  • 1.10.0
  • 1.9.0
  • 1.8.1
  • 1.8.0
  • 1.7.0
  • 1.6.2
  • 1.6.1
  • 1.6.0
  • 1.4.1
15 results

run_helm_test.sh

Blame
  • 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