def test_returns_correct_handler(self): bhsearch = BloodhoundSearchModule(self.env) tracsearch = self.env[TracSearchModule] class PathInfoSetter(object): # pylint: disable=incomplete-protocol def __setitem__(other, key, value): if key == "PATH_INFO": self.req.path_info = value self.req.environ = PathInfoSetter() self.env.config.set('bhsearch', 'enable_redirect', "True") self.req.path_info = '/search' self.assertIs(bhsearch.pre_process_request(self.req, tracsearch), bhsearch) self.req.path_info = '/bhsearch' self.assertIs(bhsearch.pre_process_request(self.req, tracsearch), bhsearch) self.env.config.set('bhsearch', 'enable_redirect', "False") # With redirect disabled, handler should not be changed. self.req.path_info = '/search' self.assertIs(bhsearch.pre_process_request(self.req, None), None) self.req.path_info = '/bhsearch' self.assertIs(bhsearch.pre_process_request(self.req, None), None)
def test_opensearch_integration(self): # pylint: disable=unused-variable self.req.path_info = '/bhsearch/opensearch' bhsearch = BloodhoundSearchModule(self.env) url, data, x = bhsearch.process_request(self.req) self.assertEqual(url, 'opensearch.xml')
def process_request(self): # pylint: disable=unused-variable url, data, x = BloodhoundSearchModule(self.env).process_request( self.req) self.env.log.debug("Received url: %s data: %s", url, data) if 'results' in data: self.env.log.debug("results: %s", data["results"].__dict__) return data
def test_that_correct_search_handle_is_selected_for_quick_search(self): bhsearch = BloodhoundSearchModule(self.env) def process_request(path, enable_redirect, is_default): # pylint: disable=unused-variable self.req.path_info = path self.env.config.set('bhsearch', 'enable_redirect', str(enable_redirect)) self.env.config.set('bhsearch', 'is_default', str(is_default)) template, data, content_type = \ bhsearch.post_process_request(self.req, '', {}, '') return data data = process_request('/', enable_redirect=False, is_default=False) self.assertIn('search_handler', data) self.assertEqual(data['search_handler'], self.req.href.search()) data = process_request('/', enable_redirect=True, is_default=False) self.assertIn('search_handler', data) self.assertEqual(data['search_handler'], self.req.href.bhsearch()) data = process_request('/', enable_redirect=False, is_default=True) self.assertIn('search_handler', data) self.assertEqual(data['search_handler'], self.req.href.bhsearch()) data = process_request('/', enable_redirect=True, is_default=True) self.assertIn('search_handler', data) self.assertEqual(data['search_handler'], self.req.href.bhsearch()) for is_default in [False, True]: data = process_request('/search', enable_redirect=False, is_default=is_default) self.assertIn('search_handler', data) self.assertEqual(data['search_handler'], self.req.href.search()) for is_default in [False, True]: data = process_request('/search', enable_redirect=True, is_default=is_default) self.assertIn('search_handler', data) self.assertEqual(data['search_handler'], self.req.href.bhsearch()) for enable_redirect in [False, True]: for is_default in [False, True]: data = process_request('/bhsearch', enable_redirect=enable_redirect, is_default=is_default) self.assertIn('search_handler', data) self.assertEqual(data['search_handler'], self.req.href.bhsearch())