Merge branch 'mfussenegger-search-engine-syntax'
https://github.com/The-Compiler/qutebrowser/pull/284
This commit is contained in:
commit
1f666b2b2e
@ -115,6 +115,7 @@ Contributors, sorted by the number of commits in descending order:
|
||||
* Claude
|
||||
* rikn00
|
||||
* Brian Jackson
|
||||
* Mathias Fussenegger
|
||||
* Peter Vilim
|
||||
// QUTE_AUTHORS_END
|
||||
|
||||
|
@ -91,22 +91,29 @@ class SearchUrlTests(unittest.TestCase):
|
||||
self.assertEqual(url.host(), 'www.example.com')
|
||||
self.assertEqual(url.query(), 'q=testfoo')
|
||||
|
||||
def test_engine_post(self):
|
||||
"""Test search engine with an appended !hasbang."""
|
||||
url = urlutils._get_search_url('testfoo !test')
|
||||
def test_engine_pre(self):
|
||||
"""Test first word is search engine name"""
|
||||
url = urlutils._get_search_url('test testfoo')
|
||||
self.assertEqual(url.host(), 'www.qutebrowser.org')
|
||||
self.assertEqual(url.query(), 'q=testfoo')
|
||||
|
||||
def test_engine_pre(self):
|
||||
"""Test search engine with a prepended !hasbang."""
|
||||
url = urlutils._get_search_url('!test testfoo')
|
||||
def test_engine_pre_whitespace_at_end(self):
|
||||
"""Test first word is search engine name"""
|
||||
url = urlutils._get_search_url('test testfoo ')
|
||||
self.assertEqual(url.host(), 'www.qutebrowser.org')
|
||||
self.assertEqual(url.query(), 'q=testfoo')
|
||||
|
||||
def test_engine_with_bang_pre(self):
|
||||
"""Test search engine with a prepended !hasbang."""
|
||||
url = urlutils._get_search_url('!python testfoo')
|
||||
self.assertEqual(url.host(), 'www.example.com')
|
||||
self.assertEqual(url.query(), 'q=%21python testfoo')
|
||||
|
||||
def test_engine_wrong(self):
|
||||
"""Test with wrong search engine."""
|
||||
with self.assertRaises(urlutils.FuzzyUrlError):
|
||||
_ = urlutils._get_search_url('!blub testfoo')
|
||||
url = urlutils._get_search_url('blub testfoo')
|
||||
self.assertEqual(url.host(), 'www.example.com')
|
||||
self.assertEqual(url.query(), 'q=blub testfoo')
|
||||
|
||||
def tearDown(self):
|
||||
urlutils.config = self.config
|
||||
|
@ -46,17 +46,18 @@ def _get_search_url(txt):
|
||||
The search URL as a QUrl.
|
||||
"""
|
||||
log.url.debug("Finding search engine for '{}'".format(txt))
|
||||
r = re.compile(r'(^|\s+)!(\w+)($|\s+)')
|
||||
r = re.compile(r'(^\w+)\s+(\w+)($|\s+)')
|
||||
m = r.search(txt)
|
||||
if m:
|
||||
engine = m.group(2)
|
||||
engine = m.group(1)
|
||||
try:
|
||||
template = config.get('searchengines', engine)
|
||||
except config.NoOptionError:
|
||||
raise FuzzyUrlError("Search engine {} not found!".format(
|
||||
engine))
|
||||
term = r.sub('', txt)
|
||||
log.url.debug("engine {}, term '{}'".format(engine, term))
|
||||
template = config.get('searchengines', 'DEFAULT')
|
||||
term = txt
|
||||
else:
|
||||
term = m.group(2)
|
||||
log.url.debug("engine {}, term '{}'".format(engine, term))
|
||||
else:
|
||||
template = config.get('searchengines', 'DEFAULT')
|
||||
term = txt
|
||||
|
Loading…
Reference in New Issue
Block a user