diff --git a/pagure/lib/__init__.py b/pagure/lib/__init__.py index 7da3788..22d974b 100644 --- a/pagure/lib/__init__.py +++ b/pagure/lib/__init__.py @@ -2916,8 +2916,12 @@ def search_pull_requests( ) if search_pattern is not None: + if '*' in search_pattern: + search_pattern = search_pattern.replace('*', '%') + else: + search_pattern = '%%%s%%' % search_pattern query = query.filter( - model.PullRequest.title.ilike('%%%s%%' % search_pattern) + model.PullRequest.title.ilike(search_pattern) ) # Depending on the order, the query is sorted(default is desc) diff --git a/tests/test_pagure_flask_ui_fork.py b/tests/test_pagure_flask_ui_fork.py index 310d6fa..3447244 100644 --- a/tests/test_pagure_flask_ui_fork.py +++ b/tests/test_pagure_flask_ui_fork.py @@ -997,6 +997,12 @@ class PagureFlaskForktests(tests.Modeltests): self.assertIn('href="/test/pull-request/1"', tr_elements[2]) self.assertEqual(len(tr_elements), 3) + output = self.app.get('/test/pull-requests?search_pattern=*PR') + output_text = output.get_data(as_text=True) + tr_elements = re.findall('
(.*?)
', output_text, re.M | re.S) + self.assertEqual(len(tr_elements), 1) + self.assertIn('href="/test/pull-request/2"', tr_elements[0]) + @patch('pagure.lib.notify.send_email') def test_request_pulls(self, send_email): """ Test the request_pulls endpoint. """