correct search engine regex to match multiple search terms

This commit is contained in:
Mathias Fussenegger 2014-11-27 22:40:10 +01:00 committed by Florian Bruhin
parent f6dffa74b6
commit aeb6ceb942
2 changed files with 8 additions and 2 deletions

View File

@ -97,6 +97,12 @@ class SearchUrlTests(unittest.TestCase):
self.assertEqual(url.host(), 'www.qutebrowser.org')
self.assertEqual(url.query(), 'q=testfoo')
def test_engine_pre_multiple_words(self):
"""Test first word is search engine name"""
url = urlutils._get_search_url('test testfoo bar foo')
self.assertEqual(url.host(), 'www.qutebrowser.org')
self.assertEqual(url.query(), 'q=testfoo bar foo')
def test_engine_pre_whitespace_at_end(self):
"""Test first word is search engine name"""
url = urlutils._get_search_url('test testfoo ')

View File

@ -46,7 +46,7 @@ def _get_search_url(txt):
The search URL as a QUrl.
"""
log.url.debug("Finding search engine for '{}'".format(txt))
r = re.compile(r'(^\w+)\s+(\w+)($|\s+)')
r = re.compile(r'(^\w+)\s+(.+)($|\s+)')
m = r.search(txt)
if m:
engine = m.group(1)
@ -56,7 +56,7 @@ def _get_search_url(txt):
template = config.get('searchengines', 'DEFAULT')
term = txt
else:
term = m.group(2)
term = m.group(2).rstrip()
log.url.debug("engine {}, term '{}'".format(engine, term))
else:
template = config.get('searchengines', 'DEFAULT')